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.