Amb

給定兩個或多個來源 Observable,僅發射第一個發射項目或通知的 Observable 的所有項目

當您將多個來源 Observable 傳遞給 Amb 時,它將傳遞這些 Observable 中恰好一個的發射和通知:第一個發送通知給 Amb 的 Observable,透過發射一個項目或發送一個 onErroronCompleted 通知。Amb 將忽略並捨棄所有其他來源 Observable 的發射和通知。

另請參閱

特定語言資訊

待定

待定

amb

RxGroovy 將此運算子實作為 amb。它最多可接受九個 Observables 作為個別參數,或接受一個 Observables 的單一 Iterable。此運算子也有一個實例版本 ambWith,因此,舉例來說,您也可以寫 o1.ambWith(o2),而不是寫 Observable.amb(o1,o2),效果相同。

預設情況下,此運算子不在任何特定的 Scheduler 上運作。

amb

RxJava 1.x 將此運算子實作為 amb。它最多可接受九個 Observables 作為個別參數,或接受一個 Observables 的單一 Iterable。此運算子也有一個實例版本 ambWith,因此,舉例來說,您也可以寫 o1.ambWith(o2),而不是寫 Observable.amb(o1,o2),效果相同。

預設情況下,此運算子不在任何特定的 Scheduler 上運作。

amb

RxJava 2.x 將此運算子實作為 amb。它接受一個 Observables 的 Iterable 作為其參數。您也可以使用 ambArray 來傳遞一個 Observables 的陣列。此運算子也有一個實例版本 ambWith,因此,舉例來說,您也可以寫 o1.ambWith(o2),而不是寫 Observable.ambArray([o1,o2]),效果相同。

預設情況下,此運算子不在任何特定的 Scheduler 上運作。

amb

RxJS 將此運算子實作為 amb。它接受可變數量的參數,這些參數可以是 Observables 或 Promises(或兩者的組合)。

範例程式碼

/* Using Observable sequences */
var source = Rx.Observable.amb(
    Rx.Observable.timer(500).select(function () { return 'foo'; }),
    Rx.Observable.timer(200).select(function () { return 'bar'; })
);

var subscription = source.subscribe(
    function (x) { console.log('Next: ' + x); },
    function (err) { console.log('Error: ' + err); },
    function () { console.log('Completed'); });
Next: bar
Completed
/* Using Promises and Observables */
var source = Rx.Observable.amb(
    RSVP.Promise.resolve('foo')
    Rx.Observable.timer(200).select(function () { return 'bar'; })
);

var subscription = source.subscribe(
    function (x) { console.log('Next: ' + x); },
    function (err) { console.log('Error: ' + err); },
    function () { console.log('Completed'); });
Next: foo
Completed

待定

RxPHP 將此運算子實作為 race

傳播第一個反應的 observable 序列。也稱為 'amb'。

範例程式碼

//from https://github.com/ReactiveX/RxPHP/blob/master/demo/race/race.php

$source = Rx\Observable::race(
    [
        Rx\Observable::timer(500)->map(function () {
            return 'foo';
        }),
        Rx\Observable::timer(200)->map(function () {
            return 'bar';
        })
    ]
);

$source->subscribe($stdoutObserver);

   
Next value: bar
Complete!
    

待定

待定

待定

待定