web-dev-qa-db-ja.com

Rxjs-.withlatestfromの複数のソース

複数のオブザーバブルから最新の放出値をマージしたいので、今は.withLatestFromを使用しています。ただし、データを新しい配列値にプッシュするのではなく、ネストされた配列にデータをネストします。以下のコード例。

.withLatestFromを使用して複数の監視可能な放出を取得する方法はありますか?

.withLatestFrom(source1)
.withLatestFrom(source2)
.withLatestFrom(source3)
.map((data) => { console.log(data) });
17
Preda70R

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};
     });
38
adharris

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))
3