RxJS - Buffer dell'operatore di trasformazione

Il buffer opera su un osservabile e accetta l'argomento come osservabile. Inizierà a bufferizzare i valori emessi sul suo osservabile originale in un array e emetterà lo stesso quando viene emesso l'osservabile preso come argomento. Una volta emesso l'osservabile preso come argomento, il buffer viene reimpostato e ricomincia il buffering sull'originale fino a quando l'input osservabile non viene emesso e lo stesso scenario si ripete.

Sintassi

buffer(input_observable: Observable): Observable

Parametri

input_observable- un osservabile che farà emettere valori dal buffer. Ad esempio, fare clic sul pulsante.

Valore di ritorno

Verrà restituito un osservabile, che avrà un array di valori bufferizzati. Lavoreremo su un esempio per comprendere il funzionamento dell'operatore buffer ().

Nell'esempio seguente, useremo il clic di un pulsante come input osservabile per il buffer. L'intervallo di 1s sarà quello osservabile originale su cui viene chiamato il buffer. Il buffer raccoglierà i clic passati nell'intervallo di tempo indicato.

Esempio

import { fromEvent, interval } from 'rxjs';
import { buffer } from 'rxjs/operators';

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

let btn_clicks = fromEvent(btn, 'click');
let interval_events = interval(1000);
let buffered_array = interval_events.pipe(buffer(btn_clicks));
buffered_array.subscribe(arr => console.log(arr));

Produzione