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