RxJS - Buffer do operador de transformação

O buffer opera em um observável e aceita o argumento como um observável. Ele começará a armazenar em buffer os valores emitidos em seu observável original em uma matriz e emitirá o mesmo quando o observável tomado como argumento for emitido. Assim que o observável tomado como argumento emite, o buffer é redefinido e começa a armazenar novamente no original até que o observável de entrada seja emitido e o mesmo cenário se repita.

Sintaxe

buffer(input_observable: Observable): Observable

Parâmetros

input_observable- um observável que fará o buffer emitir valores. Por exemplo, clique no botão.

Valor de retorno

Um observável será retornado, que terá uma matriz de valores em buffer. Vamos trabalhar em um exemplo para entender o funcionamento do operador buffer ().

No exemplo abaixo, usaremos um clique de botão como uma entrada observável para o buffer. O intervalo de 1s será o observável original no qual o buffer é chamado. O buffer irá coletar os cliques passados ​​no intervalo de tempo fornecido.

Exemplo

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

Resultado