buffer

function stable

Buffers the source Observable values until closingNotifier emits.

buffer<T>(closingNotifier: Observable<any>): OperatorFunction<T, T[]>

Parameters

closingNotifier

An Observable that signals the buffer to be emitted on the output Observable.

Returns

OperatorFunction<T, T[]>: A function that returns an Observable of buffers, which are arrays of values.

Description

Collects values from the past as an array, and emits that array only when another Observable emits.

buffer marble diagram

Buffers the incoming Observable values until the given closingNotifier Observable emits a value, at which point it emits the buffer on the output Observable and starts a new buffer internally, awaiting the next time closingNotifier emits.

Example

On every click, emit array of most recent interval events

import { fromEvent, interval } from 'rxjs';
import { buffer } from 'rxjs/operators';

const clicks = fromEvent(document, 'click');
const intervalEvents = interval(1000);
const buffered = intervalEvents.pipe(buffer(clicks));
buffered.subscribe(x => console.log(x));

See Also

© 2015–2021 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/buffer