RxJS - buffer do operador de transformação quando

Este operador fornecerá os valores na forma de array, ele recebe um argumento como uma função que decidirá quando fechar, emitir e redefinir o buffer.

Sintaxe

bufferWhen(closing_func: Observable): Observable

Parâmetros

closing_func - Uma função que retorna um Observable indicando o fechamento do buffer.

Valor de retorno

Um observável será retornado, que terá uma matriz de valores em buffer.

Exemplo

Aqui está um exemplo funcional de bufferWhen -

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

let btn = document.getElementById("btnclick");
let btn_clicks = fromEvent(btn, 'click');
let buffered_array = btn_clicks.pipe(bufferWhen(() => interval(5000)));
buffered_array.subscribe(arr => console.log(arr));

Para bufferWhendemos uma função que é executada em um intervalo de 5 segundos. Portanto, a cada 5 segundos, ele emitirá todos os cliques registrados e será reiniciado e reiniciado.

Resultado