bufferCount
signature: bufferCount(bufferSize: number, startBufferEvery: number = null): Observable
bufferCount(bufferSize: number, startBufferEvery: number = null): Observable
Collect emitted values until provided number is fulfilled, emit as array.
Why use bufferCount
?
bufferCount
?The key distinction between bufferCount and other buffering operators lies in its count-based buffering approach. Upon reaching the specified count of emissions, bufferCount groups and emits the values as an array. Think of it as collecting items in groups of the specified count.
This operator proves advantageous in scenarios where processing data in chunks is more efficient, such as bulk updates or batch processing. By contrast, the buffer operator relies on a closing notifier to define the buffering window, which may not suit all use cases.
Keep in mind, though, that bufferCount may not be the best choice when the buffering strategy requires time-based or event-driven windows. In such instances, consider using buffer or buffertime instead. Remember, bufferCount organizes values based on emission count, as illustrated clearly in the first example.
Exercise caution in situations where buffering strategy plays a critical role in the desired output, as choosing the wrong operator might lead to unexpected behavior. Familiarize yourself with the various buffering operators to make informed decisions based on your specific requirements.
Examples
Example 1: Collect buffer and emit after specified number of values
( StackBlitz | jsBin | jsFiddle )
Example 2: Overlapping buffers
( StackBlitz | jsBin | jsFiddle )
Example 3: Last n keyboard presses tracking
( StackBlitz )
Additional Resources
bufferCount 📰 - Official docs
📁 Source Code: https://github.com/ReactiveX/rxjs/blob/master/src/internal/operators/bufferCount.ts
Last updated