これは、あなたがそのすべてのソース観測がn
番目の項目放出されている場合にのみ、n
番目の項目を発するzip()
演算子を使用することができようになっています
const one$ = Observable.from(['a1', 'a2', 'a3'], Scheduler.async);
const two$ = Observable.from(['b1'], Scheduler.async);
Observable.zip(one$, two$, (v1, v2) => v1)
.subscribe(val => console.log(val));
を私だけにScheduler.async
を追加しています非同期動作をシミュレートします(詳細はcombineLatest behaviour in Rxjs 5?を参照してください)
これがコンソールに出力されます:
a1
これは、one$
が1回だけ放出することがわかっている場合にのみ問題ありません。
combineLatest()
最終的には、すべてのソースオブザーバブルが少なくとも1つのアイテムを放出する必要があり、セレクタ機能でtwo$
を無視できる任意のエミッションで放出することができます。
const one$ = Observable.from(['a1', 'a2', 'a3'], Scheduler.async);
const two$ = Observable.from(['b1', 'b2'], Scheduler.async);
Observable.combineLatest(one$, two$.take(1), (v1, v2) => v1)
.subscribe(val => console.log(val));
我々は、我々は唯一のtwo$
から最初の項目をしたいことを知っているが、残りは無視することができます。
これはコンソールに印刷されます:
a1
a2
a3