RxJS - Operatore di trasformazione bufferCount
Nel caso dell'operatore buffercount, raccoglierà i valori dall'osservabile su cui è chiamato ed emetterà gli stessi quando la dimensione del buffer data a buffercount corrisponde. Sono necessari 2 argomentibuffersize e il secondo è startBufferEvery cioè conterà i nuovi valori da startBufferEvery se fornito oppure dall'inizio della sorgente osservabile.
Sintassi
bufferCount(bufferSize: number, startBufferEvery: number = null): Observable
Parametri
bufferSize - La dimensione del buffer da emettere.
Valore di ritorno
Verrà restituito un osservabile, che avrà un array di valori bufferizzati.
Vedremo un esempio funzionante di bufferCount ()
Esempio 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));
Nell'esempio precedente, bufferSize è 4. Quindi, dopo un conteggio di 4 clic, l'array di eventi di clic viene raccolto in un array e visualizzato. Poiché non abbiamo dato startBufferEvery, i valori verranno conteggiati dall'inizio.
Produzione
Esempio 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));
In questo esempio, abbiamo aggiunto startBufferEvery, quindi dopo ogni 2 clic, verrà visualizzato un conteggio del buffer di 4 eventi di clic.