Скажем, у меня есть

A: IObservable<int> 
B: IObservable<int> 

Как я могу объединить эти два в

C: IObservable<int> 

Какое значение эмиссии является произведением последних наблюдаемых значений A и B?

Например.

A = [ 2   3       1 ]
B = [   2   5  6    ]

Тогда

C = [   4 6 15 18 6 ] 
0
irriss 13 Июн 2020 в 05:26

1 ответ

Лучший ответ

Я не очень хорошо разбираюсь в f # (больше как новичок), но, похоже, это работает:

let a = new Subject<int>()
let b = new Subject<int>()

let c = Observable.CombineLatest(a, b, Func<_,_,_>(fun x y -> x * y))

c.Subscribe(fun x -> printfn "%i" x) |> ignore

a.OnNext(2)
b.OnNext(2)
a.OnNext(3)
b.OnNext(5)
b.OnNext(6)
a.OnNext(1)

Я получил:

4
6
15
18
6
1
Enigmativity 13 Июн 2020 в 03:16