Este operador dará los valores en forma de matriz, toma un argumento como una función que decidirá cuándo cerrar, emitir y restablecer el búfer.
Sintaxis
bufferWhen(closing_func: Observable): Observable
Parámetros
closing_func - Una función que devuelve un cierre de búfer que indica Observable.
Valor devuelto
Se devolverá un observable, que tendrá una matriz de valores almacenados en búfer.
Ejemplo
Aquí hay un ejemplo 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));
por bufferWhenle hemos dado una función que se ejecuta en un intervalo de 5 segundos. Por lo tanto, después de cada 5 segundos, generará todos los clics registrados y se reiniciará y comenzará de nuevo.
Salida