RxJS - BufferCount del operador de transformación

En el caso del operador buffercount, recopilará los valores del observable en el que se llama y emitirá los mismos cuando coincida el tamaño de búfer dado a buffercount. Toma 2 argumentosbuffersize y el segundo es startBufferEvery es decir, contará los nuevos valores desde startBufferEvery si se da o desde el comienzo de la fuente observable.

Sintaxis

bufferCount(bufferSize: number, startBufferEvery: number = null): Observable

Parámetros

bufferSize - El tamaño del búfer que se emitirá.

Valor devuelto

Se devolverá un observable, que tendrá una matriz de valores almacenados en búfer.

Veremos un ejemplo funcional de bufferCount ()

Ejemplo 1

import { fromEvent } from 'rxjs';
import { bufferCount } from 'rxjs/operators';

let btn = document.getElementById("btnclick");

let btn_clicks = fromEvent(btn, 'click');
let buffered_array = btn_clicks.pipe(bufferCount(4));
buffered_array.subscribe(arr => console.log(arr));

En el ejemplo anterior, bufferSize es 4. Entonces, después de un recuento de 4 clics, la matriz de eventos de clic se recopila en una matriz y se muestra. Como no hemos dado el startBufferEvery, los valores se contarán desde el principio.

Salida

Ejemplo 2

import { fromEvent } from 'rxjs';
import { bufferCount } from 'rxjs/operators';

let btn = document.getElementById("btnclick");
let btn_clicks = fromEvent(btn, 'click');
let buffered_array = btn_clicks.pipe(bufferCount(4, 2));
buffered_array.subscribe(arr => console.log(arr));

En este ejemplo, hemos agregado startBufferEvery, por lo que después de cada 2 clics, mostrará un recuento de búfer de 4 eventos de clic.

Salida