観測可能演算子:マージとコンバージョン



合併する
名前としてマージは、入力オブザーバブルを入力オブザーバブルに出力オブザーバブルにマージします.出力可能な出力complete すべての入力オブザーバブルcomplete . 入力オブザーバブルにエラーがあれば、そのエラーは直ちに出力可能な出力に送られる.
import Rx from 'rxjs';

const interval1 = Rx.Observable.interval(1000).map(i => `first: ${i}`);
const interval2 = Rx.Observable.interval(500).map(i => `second: ${i}`);

const combinedInterval = Rx.Observable.merge(interval1, interval2).take(10);

combinedInterval.subscribe(
    data => console.log(`${data}`)
);
二組合体したinterval 観測可能なものcombinedInterval 観測可能.最初の間隔は1秒ごとに出力されます、そして、2番目は1秒おきにそれをします.出力は次のようになります.
second: 0
first: 0
second: 1
second: 2
first: 1
second: 3
second: 4
first: 2
second: 5
second: 6
merge また、統合可観測性の同時実行を指定できます.例えば、私が3を結合するならばinterval ベースのオブザーバブルが、私はそれらの2つを一度に実行するだけで、私はスケジュール(など)パラメータを渡すことができます.
import Rx from 'rxjs';

const interval1 = Rx.Observable.interval(1000).map(i => `first: ${i}`).take(10);
const interval2 = Rx.Observable.interval(500).map(i => `second: ${i}`).take(5);
const interval3 = Rx.Observable.interval(500).map(i => `third: ${i}`).take(10);

const combinedInterval = Rx.Observable.merge(interval1, interval2, interval3, 2); // 2 at a time

combinedInterval.subscribe(
    data => console.log(`${data}`)
);
第2の可観測性からの5つの値まで、第1および第2の観測可能な実行は、放たれた.それから、3番目の観測可能なものは最初の1つを放出値で結合します.出力は以下のようになります.
second: 0
first: 0
second: 1
second: 2
first: 1
second: 3
second: 4
first: 2
third: 0
third: 1
first: 3
third: 2
third: 3
first: 4
third: 4
third: 5
first: 5
third: 6
third: 7
first: 6
third: 8
third: 9
first: 7
first: 8
first: 9

コンステ
コンディションはマージと少し異なります.両方ともオブザーバーブルを結合しますconcat 待機する前に、それが次のいずれかを開始する完了することができます.すべてのオブザーバブルは、順番に連結されます.マージの場合、それらのすべてが実行されますが、出力の単一のストリームを提供します.
import Rx from 'rxjs';

const interval1 = Rx.Observable.interval(1000).map(i => `first: ${i}`).take(5);
const interval2 = Rx.Observable.interval(500).map(i => `second: ${i}`).take(5);

const combinedInterval = Rx.Observable.concat(interval1, interval2);

combinedInterval.subscribe(
    data => console.log(`${data}`)
);
So concat 出力を組み合わせますが、出力順序を維持します.コンソールログは次のようになります.
first: 0
first: 1
first: 2
first: 3
first: 4
second: 0
second: 1
second: 2
second: 3
second: 4