Spec-Zone.ru › RxJS

skipUntil

function stable operator

Возвращает Observable, пропускающий элементы, испускаемые исходным Observable, до тех пор, пока второй Observable не испустит элемент.

skipUntil<T>(notifier: ObservableInput<any>): MonoTypeOperatorFunction<T>

Параметры

notifier ObservableInput<any>

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

Возвращает

MonoTypeOperatorFunction<T>: Функция, которая возвращает Observable, пропускающий элементы из исходного Observable до тех пор, пока Observable notifier не испустит элемент, а затем испускает оставшиеся элементы.

Описание

Оператор skipUntil заставляет поток observable пропускать испускание значений до тех пор, пока переданный observable не испустит первое значение. Это особенно полезно в сочетании с пользовательскими взаимодействиями, ответами HTTP-запросов или ожиданием определённых временных интервалов.

skipUntil marble diagram

Внутренне, оператор skipUntil подписывается на переданный notifier ObservableInput (который преобразуется в Observable), чтобы распознать испускание его первого значения. Когда notifier испускает следующее значение, оператор отписывается от него и начинает испускать значения observable source до тех пор, пока оно не завершится или не возникнет ошибка. Оно никогда не позволит observable source испустить какие-либо значения, если observable notifier завершится или выдаст ошибку без испускания значения ранее.

Пример

В следующем примере все испущенные значения observable интервала пропускаются до тех пор, пока пользователь не кликнет где-либо на странице

import { interval, fromEvent, skipUntil } from 'rxjs';

const intervalObservable = interval(1000);
const click = fromEvent(document, 'click');

const emitAfterClick = intervalObservable.pipe(
  skipUntil(click)
);
// clicked at 4.6s. output: 5...6...7...8........ or
// clicked at 7.3s. output: 8...9...10..11.......
emitAfterClick.subscribe(value => console.log(value));

См. также

  • last
  • skip
  • skipWhile
  • skipLast

© 2015–2022 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors.
Code licensed under an Apache-2.0 License. Documentation licensed under CC BY 4.0.
https://rxjs.dev/api/operators/skipUntil

Spec-Zone.ru

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