複数のオブザーバブルから最新の放出値をマージしたいので、今は.withLatestFromを使用しています。ただし、データを新しい配列値にプッシュするのではなく、ネストされた配列にデータをネストします。以下のコード例。
.withLatestFromを使用して複数の監視可能な放出を取得する方法はありますか?
.withLatestFrom(source1)
.withLatestFrom(source2)
.withLatestFrom(source3)
.map((data) => { console.log(data) });
withLatestFrom
は複数のオブザーバブルをサポートします:
.withLatestFrom(source1, source2, source3)
.map((data) => { console.log(data) });
-> [val, value1, value2, value3]
また、最後のパラメーターとしての機能もサポートしているため、配列以外の値を取得できます。
observable$
.withLatestFrom(source1, source2, (val, one, two) => {
return {val: val, one: one, two: two};
});
withLatestFromは複数のオブザーバブルを受け入れます。次のように書くことができます:
let obs1$ = Rx.Observable.of('a');
let obs2$ = Rx.Observable.of('b');
Rx.Observable.interval(1000)
.withLatestFrom(obs1$, obs2$)
.subscribe(x=>console.log(x))