windowToggle
function stable operator
Разветвляет значения исходного Observable в качестве вложенного Observable, начиная с испускания от openings и заканчивая, когда испускает вывод closingSelector.
windowToggle<T, O>(openings: ObservableInput<O>, closingSelector: (openValue: O) => ObservableInput<any>): OperatorFunction<T, Observable<T>>
Параметры
openings | ObservableInput<O> | Observable уведомлений для начала новых окон. |
closingSelector | (openValue: O) => ObservableInput<any> | Функция, которая принимает значение, испущенное Observable |
Возвращает
OperatorFunction<T, Observable<T>>: Функция, возвращающая Observable окон, которые в свою очередь являются Observable.
Описание
Это похоже на bufferToggle, но испускает вложенное Observable вместо массива.
Возвращает Observable, который испускает окна элементов, собранных из исходного Observable. Выходной Observable испускает окна, содержащие те элементы, которые испускает исходный Observable, между моментом, когда Observable openings испускает элемент, и моментом, когда Observable, возвращённый closingSelector, испускает элемент.
Пример
Каждые полсекунды испускайте события кликов из следующих 500 миллисекунд
import { fromEvent, interval, windowToggle, EMPTY, mergeAll } from 'rxjs';
const clicks = fromEvent(document, 'click');
const openings = interval(1000);
const result = clicks.pipe(
windowToggle(openings, i => i % 2 ? interval(500) : EMPTY),
mergeAll()
);
result.subscribe(x => console.log(x)); См. также
© 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/windowToggle