Spec-Zone.ru › RxJS

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 openings, и возвращает Observable, которое, при испускании уведомления next, сигнализирует о завершении связанного окна.

Возвращает

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

Описание

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

windowToggle marble diagram

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

См. также

  • window
  • windowCount
  • windowTime
  • windowWhen
  • bufferToggle

© 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

Spec-Zone.ru

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