function
stable
Branch out the source Observable values as a nested Observable starting from an emission from openings
and ending when the output of closingSelector
emits.
windowToggle<T, O>(openings: Observable<O>, closingSelector: (openValue: O) => Observable<any>): OperatorFunction<T, Observable<T>>
openings | An observable of notifications to start new windows. |
closingSelector | A function that takes the value emitted by the |
OperatorFunction<T, Observable<T>>
: An observable of windows, which in turn are Observables.
It's like bufferToggle
, but emits a nested Observable instead of an array.
Returns an Observable that emits windows of items it collects from the source Observable. The output Observable emits windows that contain those items emitted by the source Observable between the time when the openings
Observable emits an item and when the Observable returned by closingSelector
emits an item.
Every other second, emit the click events from the next 500ms
import { fromEvent, interval, EMPTY } from 'rxjs'; import { windowToggle, mergeAll } from 'rxjs/operators'; 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));
© 2015–2018 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