Spec-Zone.ru › ReactiveX

TakeUntil

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

Оператор TakeUntil подписывается и начинает зеркальное отображение исходного Observable. Он также отслеживает второй Observable, который вы предоставляете. Если этот второй Observable испускает элемент или отправляет уведомление о завершении, Observable, возвращаемый оператором TakeUntil, прекращает зеркальное отображение исходного Observable и завершается.

См. также

  • Skip
  • SkipLast
  • SkipUntil
  • SkipWhile
  • Take
  • TakeLast
  • TakeWhile
  • Введение в Rx: SkipUntil и TakeUntil
  • RxMarbles: takeUntil

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

RxGroovy takeUntil

takeUntil

В RxGroovy этот оператор реализован как takeUntil. Обратите внимание, что второй Observable может заставить takeUntil прекратить испускание элементов, либо испустив элемент, либо выдав уведомление о onError или onCompleted.

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

  • Javadoc: takeUntil(Observable)
takeUntil

Вторая версия этого оператора была выпущена в RxGroovy 1.1. Она использует предикатную функцию, которая оценивает элементы, испускаемые исходным Observable, для завершения последовательности Observable. Таким образом, она ведет себя аналогично оператору TakeWhile.

  • Javadoc: takeUntil(Func1) (RxGroovy 1.1)

RxJava 1․x takeUntil

takeUntil

В RxJava этот оператор реализован как takeUntil. Обратите внимание, что второй Observable может заставить takeUntil прекратить испускание элементов, либо испустив элемент, либо выдав уведомление о onError или onCompleted.

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

  • Javadoc: takeUntil(Observable)
takeUntil

Вторая версия этого оператора была выпущена в RxJava 1.1. Она использует предикатную функцию, которая оценивает элементы, испускаемые исходным Observable, для завершения последовательности Observable. Таким образом, она ведет себя аналогично оператору TakeWhile.

  • Javadoc: takeUntil(Func1) (RxJava 1.1)

RxJS takeUntil

takeUntil

RxJS реализует оператор takeUntil. Вы можете передать ему либо Observable, либо Promise, за которым он будет следить, чтобы получить элемент, вызывающий takeUntil прекратить зеркальное отображение исходного Observable.

Пример кода

var source = Rx.Observable.timer(0, 1000)
    .takeUntil(Rx.Observable.timer(5000));

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

takeUntil присутствует во всех следующих дистрибутивах:

  • rx.js
  • rx.all.js
  • rx.all.compat.js
  • rx.compat.js
  • rx.lite.js
  • rx.lite.compat.js

Также существует оператор takeUntilWithTime, в который можно передать абсолютное время или начальную длительность, но это описано на странице оператора Take.

RxPHP takeUntil

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

Возвращает значения из исходной последовательности Observable до тех пор, пока другая последовательность Observable не произведёт значение.

Пример кода

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

$observable = Rx\Observable::fromArray([21, 42, 63]);
$observable
    ->take(2)
    ->subscribe($stdoutObserver);
Next value: 21
Next value: 42
Complete!

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

Spec-Zone.ru

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