Spec-Zone.ru › RxJS

windowWhen

function stable operator

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

windowWhen<T>(closingSelector: () => ObservableInput<any>): OperatorFunction<T, Observable<T>>

Параметры

closingSelector () => ObservableInput<any>

Функция без аргументов, возвращающая ObservableInput (преобразуется в Observable), которая сигнализирует (по next или complete) о закрытии предыдущего окна и начале нового.

Возвращает

OperatorFunction<T, Observable<T>>: Функция, возвращающая Observable окон, которые, в свою очередь, являются Observable.

Описание

Это как bufferWhen, но вместо массива испускает вложенное Observable.

windowWhen marble diagram

Возвращает Observable, испускающее окна элементов, собранных из источника Observable. Выходное Observable испускает связанные, неперекрывающиеся окна. Оно испускает текущее окно и открывает новое, когда Observable, созданное указанной функцией closingSelector, испускает элемент. Первое окно открывается сразу при подписке на выходное Observable.

Пример

Испускает только первые два события клика в каждом окне из [1-5] случайных секунд

import { fromEvent, windowWhen, interval, map, take, mergeAll } from 'rxjs';

const clicks = fromEvent(document, 'click');
const result = clicks.pipe(
  windowWhen(() => interval(1000 + Math.random() * 4000)),
  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));

См. также

  • window
  • windowCount
  • windowTime
  • windowToggle
  • bufferWhen

© 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/windowWhen

Spec-Zone.ru

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