Spec-Zone.ru › ReactiveX

Amb

данные из двух или более источниковых наблюдаемых, издавать все элементы только из первого из этих наблюдаемых, которые издадут элемент или уведомление
Открыть интерактивную диаграмму на rxmarbles.com

Когда вы передаёте несколько исходных наблюдаемых в Amb, он передаст исходящие данные и уведомления ровно из одной из этих наблюдаемых: первой, которая отправит уведомление в Amb, либо отправив элемент, либо отправив onError или onCompleted уведомление. Amb проигнорирует и отбросит исходящие данные и уведомления всех остальных исходных наблюдаемых.

См. также

  • RxMarbles: amb

Информация, специфичная для языка

RxGroovy amb ambWith

amb

RxGroovy реализует этот оператор как amb. Он принимает до девяти наблюдаемых в качестве отдельных параметров или один итерируемый набор наблюдаемых. Также есть экземплярный вариант оператора, ambWith, так что, например, вместо написания Observable.amb(o1,o2) вы также можете написать o1.ambWith(o2) для достижения того же эффекта.

Этот оператор по умолчанию не работает с каким-либо конкретным Планировщиком.

  • Javadoc: amb(Iterable)
  • Javadoc: amb(Observable,Observable) (также есть версии, которые принимают до девяти параметров Observable)
  • Javadoc: ambWith(Observable)

RxJava 1․x amb ambWith

amb

RxJava 1.x реализует этот оператор как amb. Он принимает до девяти наблюдаемых в качестве отдельных параметров или один итерируемый набор наблюдаемых. Также есть экземплярный вариант оператора, ambWith, так что, например, вместо написания Observable.amb(o1,o2) вы также можете написать o1.ambWith(o2) для достижения того же эффекта.

Этот оператор по умолчанию не работает с каким-либо конкретным Планировщиком.

  • Javadoc: amb(Iterable)
  • Javadoc: amb(Observable,Observable) (также есть версии, которые принимают до девяти параметров Observable)
  • Javadoc: ambWith(Observable)

RxJava 2․x amb ambArray ambWith

amb

RxJava 2.x реализует этот оператор как amb. Он принимает итерируемый набор наблюдаемых в качестве параметра. Вы также можете использовать ambArray для передачи массива наблюдаемых. Также есть экземплярный вариант оператора, ambWith, так что, например, вместо написания Observable.ambArray([o1,o2]) вы также можете написать o1.ambWith(o2) для достижения того же эффекта.

Этот оператор по умолчанию не работает с каким-либо конкретным Планировщиком.

  • Javadoc: amb(Iterable)
  • Javadoc: ambArray(Iterable)
  • Javadoc: ambWith(Observable)

RxJS amb

amb

RxJS реализует этот оператор как amb. Он принимает переменное количество параметров, которые могут быть либо наблюдаемыми, либо обещаниями (или комбинацией того и другого).

Пример кода

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

RxPHP реализует этот оператор как race.

Распространяет последовательность наблюдаемых, которая реагирует первой. Также известен как '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!

© ReactiveX contributors
Licensed under the Apache License 2.0.
http://reactivex.io/documentation/operators/amb.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API