Spec-Zone.ru › RxJS

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 вместо массива.

window marble diagram

Возвращает 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));

См. также

  • windowCount
  • windowTime
  • windowToggle
  • windowWhen
  • buffer

© 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

Spec-Zone.ru

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