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 подписывается на переданный 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)); См. также
© 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