让我说
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 :(得分: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