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.

Produzione