A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://reactivex.io/documentation/operators/amb.html below:

ReactiveX - Amb operator

  1. Operators
  2. Conditional and Boolean
  3. Amb
Amb given two or more source Observables, emit all of the items from only the first of these Observables to emit an item or notification

When you pass a number of source Observables to Amb, it will pass through the emissions and notifications of exactly one of these Observables: the first one that sends a notification to Amb, either by emitting an item or sending an onError or onCompleted notification. Amb will ignore and discard the emissions and notifications of all of the other source Observables.

See Also Language-Specific Information:

RxGroovy implements this operator as amb. It takes up to nine Observables as individual parameters, or a single Iterable of Observables. There is also an instance version of the operator, ambWith, so that, for example, instead of writing Observable.amb(o1,o2) you could also write o1.ambWith(o2) for the same effect.

This operator does not by default operate on any particular Scheduler.

RxJava 1.x implements this operator as amb. It takes up to nine Observables as individual parameters, or a single Iterable of Observables. There is also an instance version of the operator, ambWith, so that, for example, instead of writing Observable.amb(o1,o2) you could also write o1.ambWith(o2) for the same effect.

This operator does not by default operate on any particular Scheduler.

RxJava 2.x implements this operator as amb. It takes an Iterable of Observables as its parameter. You can also use ambArray to pass an array of Observables. There is also an instance version of the operator, ambWith, so that, for example, instead of writing Observable.ambArray([o1,o2]) you could also write o1.ambWith(o2) for the same effect.

This operator does not by default operate on any particular Scheduler.

RxJS implements this operator as amb. It takes a variable number of parameters, which may be either Observables or Promises (or combinations of the two).

Sample Code
/* 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 implements this operator as race.

Propagates the observable sequence that reacts first. Also known as 'amb'.

Sample Code
//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!
    

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4