Spec-Zone.ru › RxJS

windowCount

function stable operator

Разветвляет значения источника Observable в вложенное Observable, при этом каждое вложенное Observable излучает не более windowSize значений.

windowCount<T>(windowSize: number, startWindowEvery: number = 0): OperatorFunction<T, Observable<T>>

Параметры

windowSize number

Максимальное количество значений, излучаемых каждым окном.

startWindowEvery number

Необязательно. По умолчанию 0.

Интервал, через который нужно начинать новое окно. Например, если startWindowEvery равно 2, то новое окно будет начинаться через каждые два значения из источника. Новое окно по умолчанию запускается в начале источника.

Возвращает

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

Описание

Это похоже на bufferCount, но излучает вложенное Observable вместо массива.

windowCount marble diagram

Возвращает Observable, который излучает окна элементов, собранных из Observable источника. Observable вывода излучает окна через каждые startWindowEvery элементов, каждое из которых содержит не более windowSize элементов. Когда источник Observable завершается или сталкивается с ошибкой, Observable вывода излучает текущее окно и распространяет уведомление от источника Observable. Если startWindowEvery не указано, новые окна начинаются сразу в начале источника и при завершении каждого окна размером windowSize.

Примеры

Проигнорировать каждый третий клик мыши, начиная с первого

import { fromEvent, windowCount, map, skip, mergeAll } from 'rxjs';

const clicks = fromEvent(document, 'click');
const result = clicks.pipe(
  windowCount(3),
  map(win => win.pipe(skip(1))), // skip first of every 3 clicks
  mergeAll()                     // flatten the Observable-of-Observables
);
result.subscribe(x => console.log(x));

Проигнорировать каждый третий клик мыши, начиная с третьего

import { fromEvent, windowCount, mergeAll } from 'rxjs';

const clicks = fromEvent(document, 'click');
const result = clicks.pipe(
  windowCount(2, 3),
  mergeAll() // flatten the Observable-of-Observables
);
result.subscribe(x => console.log(x));

См. также

  • window
  • windowTime
  • windowToggle
  • windowWhen
  • bufferCount

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

Spec-Zone.ru

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