Join
操作符組合兩個 Observable 發射的項目,並根據您針對每個項目定義的持續時間視窗來選擇要組合的項目。您將這些視窗實作為 Observables,其生命週期從任一 Observable 發射的每個項目開始。當此類定義視窗的 Observable 發射項目或完成時,其關聯項目的視窗將關閉。只要項目的視窗處於開啟狀態,它就會與另一個 Observable 發射的任何項目組合。您定義項目組合的方式。
大多數具有 Join
操作符的 ReactiveX 實現也有一個類似的 GroupJoin
操作符,不同之處在於您定義用於組合兩個 Observable 發射項目的函式,不是將來源 Observable 發射的個別項目與第二個 Observable 的項目配對,而是與一個 Observable 配對,該 Observable 發射第二個 Observable 在同一視窗內的項目。
待定
待定
join
操作符接受四個參數
join
傳回的 Observable 發射的項目
join
預設不在任何特定的 排程器上運作。
Join(Observable,Func1,Func1,Func2)
groupJoin
操作符接受四個參數
groupJoin
傳回的 Observable 發射的項目
groupJoin
預設不在任何特定的 排程器上運作。
請注意,在可選的 StringObservable
類別中也有一個 join
操作符。它將發射一系列字串的 Observable 轉換為一個發射單一字串的 Observable,該字串將它們全部串連起來,並以指定的字串分隔符號分隔。
join
操作符接受四個參數
join
傳回的 Observable 發射的項目
join
預設不在任何特定的 排程器上運作。
Join(Observable,Func1,Func1,Func2)
groupJoin
操作符接受四個參數
groupJoin
傳回的 Observable 發射的項目
groupJoin
預設不在任何特定的 排程器上運作。
請注意,在可選的 StringObservable
類別中也有一個 join
操作符。它將發射一系列字串的 Observable 轉換為一個發射單一字串的 Observable,該字串將它們全部串連起來,並以指定的字串分隔符號分隔。
join
操作符接受四個參數
join
傳回的 Observable 發射的項目var xs = Rx.Observable.interval(100) .map(function (x) { return 'first' + x; }); var ys = Rx.Observable.interval(100) .map(function (x) { return 'second' + x; }); var source = xs .join( ys, function () { return Rx.Observable.timer(0); }, function () { return Rx.Observable.timer(0); }, function (x, y) { return x + y; } ) .take(5); var subscription = source.subscribe( function (x) { console.log('Next: ' + x); }, function (err) { console.log('Error: ' + err); }, function () { console.log('Completed'); });
Next: first0second0 Next: first1second1 Next: first2second2 Next: first3second3 Next: first4second4 Completed
groupJoin
操作符接受四個參數
groupJoin
傳回的 Observable 發射的項目ar xs = Rx.Observable.interval(100) .map(function (x) { return 'first' + x; }); var ys = Rx.Observable.interval(100) .map(function (x) { return 'second' + x; }); var source = xs.groupJoin( ys, function () { return Rx.Observable.timer(0); }, function () { return Rx.Observable.timer(0); }, function (x, yy) { return yy.select(function (y) { return x + y; }) }).mergeAll().take(5); var subscription = source.subscribe( function (x) { console.log('Next: ' + x); }, function (err) { console.log('Error: ' + err); }, function () { console.log('Completed'); });
Next: first0second0 Next: first1second1 Next: first2second2 Next: first3second3 Next: first4second4 Completed
在下列每個發行版本中都可以找到 join
和 groupJoin
rx.all.js
rx.all.compat.js
rx.coincidence.js
待定