windowToggle
Branch out the source Observable values as a nested Observable starting from
an emission from openings
and ending when the output of closingSelector
emits.
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.
Example
Every other second, emit the click events from the next 500ms
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));
§Parameters
An observable of notifications to start new windows.
A function that takes
the value emitted by the openings
observable and returns an Observable,
which, when it emits a next notification, signals that the
associated window should complete.
§Return Type
A function that returns an Observable of windows, which in turn are Observables.