RxJS - Opérateur de transformation bufferCount

Dans le cas de l'opérateur buffercount, il collectera les valeurs de l'observable sur laquelle il est appelé et émettra la même chose lorsque la taille de tampon donnée à buffercount correspond. Il faut 2 argumentsbuffersize et le second est startBufferEvery c'est-à-dire qu'il comptera les nouvelles valeurs de startBufferEvery si elles sont données ou bien depuis le début de l'observable source.

Syntaxe

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

Paramètres

bufferSize - La taille du tampon à émettre.

Valeur de retour

Un observable sera retourné, qui aura un tableau de valeurs tamponnées.

Nous verrons un exemple fonctionnel de bufferCount ()

Exemple 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));

Dans l'exemple ci-dessus, bufferSize est 4. Ainsi, après un décompte de 4 clics, le tableau d'événements de clic est collecté dans un tableau et affiché. Puisque nous n'avons pas donné le startBufferEvery, les valeurs seront comptées depuis le début.

Production

Exemple 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));

Dans cet exemple, nous avons ajouté startBufferEvery, donc après tous les 2 clics, il affichera un nombre de tampons de 4 événements de clic.

Production