rxjs / latest / api / operators / buffer.html

buffer

function stable operator

Buffers the source Observable values until closingNotifier emits.

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

Parameters

closingNotifier Observable<any>

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, buffer } from 'rxjs';

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

See Also

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