Amb

给定两个或多个源 Observable,只从第一个发出一个项目或通知的 Observable 中发出所有项目。

当您将多个源 Observable 传递给 Amb 时,它将传递来自这些 Observable 中的其中一个的发出和通知:第一个向 Amb 发送通知的 Observable,无论通过发出一个项目还是发送 onErroronCompleted 通知。Amb 将忽略并丢弃所有其他源 Observable 的发出和通知。

另请参见

特定语言信息

待定

待定

amb

RxGroovy 将此操作符实现为 amb。它最多可以接受九个 Observable 作为单独的参数,或者接受一个 Observable 的可迭代对象。操作符还有一个实例版本 ambWith,因此,例如,您可以编写 o1.ambWith(o2) 来获得与 Observable.amb(o1,o2) 相同的效果。

默认情况下,此操作符不会在任何特定的 调度器 上运行。

amb

RxJava 1.x 将此操作符实现为 amb。它最多可以接受九个 Observable 作为单独的参数,或者接受一个 Observable 的可迭代对象。操作符还有一个实例版本 ambWith,因此,例如,您可以编写 o1.ambWith(o2) 来获得与 Observable.amb(o1,o2) 相同的效果。

默认情况下,此操作符不会在任何特定的 调度器 上运行。

amb

RxJava 2.x 将此操作符实现为 amb。它接受一个 Observable 的可迭代对象作为参数。您还可以使用 ambArray 传递一个 Observable 数组。操作符还有一个实例版本 ambWith,因此,例如,您可以编写 o1.ambWith(o2) 来获得与 Observable.ambArray([o1,o2]) 相同的效果。

默认情况下,此操作符不会在任何特定的 调度器 上运行。

amb

RxJS 将此操作符实现为 amb。它接受可变数量的参数,这些参数可以是 Observable 或 Promise(或两者的组合)。

示例代码

/* 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!
    

待定

待定

待定

待定