Rx.Observable.prototype.amb(rightSource)

amb

</rx-marbles>

从一系列流中,订阅最先发射的值的可观察对象并忽略其他的可观察对象。“amb”代表ambiguous

参数

  1. rightSource (Observable): 第二个可观察序列.

返回值

(Observable): 返回首先返回值的可观察对象

var first = Rx.Observable.timer(300).map(function () { return 'first'; });
var second = Rx.Observable.timer(500).map(function () { return 'second'; });

var source = first.amb(second);

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

// => Next: first
// => Completed

应用

由于只取最先返回值的可观察对象。所以可以应用于任何抢答、秒杀等一对多竞态应用。