window
function stable operator
Разветвляет исходные значения Observable в вложенное Observable, всякий раз, когда windowBoundaries генерирует значение.
window<T>(windowBoundaries: ObservableInput<any>): OperatorFunction<T, Observable<T>>
Параметры
windowBoundaries | ObservableInput<any> | Объект, завершающий предыдущее окно и начинающий новое. |
Возвращаемое значение
OperatorFunction<T, Observable<T>>: Функция, которая возвращает Observable окон, которые являются Observable, излучающие значения из исходного Observable.
Описание
Это похоже на buffer, но излучает вложенное Observable вместо массива.
Возвращает Observable, которое излучает окна элементов, собранных из исходного Observable. Выходное Observable излучает соединенные, непересекающиеся окна. Оно излучает текущее окно и открывает новое, всякий раз, когда windowBoundaries генерирует элемент. windowBoundaries может быть любого типа, который ObservableInput принимает. Внутренне он преобразуется в Observable. Поскольку каждое окно является Observable, выход представляет собой Observable более высокого порядка.
Пример
В каждом окне длиной 1 секунда излучайте не более 2 событий клика
import { fromEvent, interval, window, map, take, mergeAll } from 'rxjs';
const clicks = fromEvent(document, 'click');
const sec = interval(1000);
const result = clicks.pipe(
window(sec),
map(win => win.pipe(take(2))), // take at most 2 emissions from each window
mergeAll() // flatten the Observable-of-Observables
);
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/window