RxJS - Operatore di trasformazione bufferToggle
Nel caso di bufferToggle prende 2 argomenti, openings e closingSelector. Gli argomenti di apertura sono un sottoscrivibile o una promessa di avviare il buffer e il secondo argomento closingSelector è di nuovo sottoscrivibile o promette un indicatore per chiudere il buffer ed emettere i valori raccolti.
Sintassi
bufferToggle(openings: SubscribableOrPromise, closingSelector: SubscribableOrPromise): Observable
Parametri
openings - Una promessa o una notifica per avviare il nuovo buffer.
closingSelector - Una funzione che prenderà i valori dalle aperture osservabili e restituirà Sottoscrivibile o Promessa.
Valore di ritorno
Verrà restituito un osservabile, che avrà un array di valori bufferizzati.
Esempio
import { fromEvent, interval,EMPTY} from 'rxjs';
import { bufferToggle } from 'rxjs/operators';
let btn = document.getElementById("btnclick");
let btn_clicks = fromEvent(btn, 'click');
let start = interval(2000);
let buffered_array = btn_clicks.pipe(
bufferToggle(start, a => a%2 ==0 ? interval(1000): EMPTY)
);
buffered_array.subscribe(arr => console.log(arr));
Nell'esempio sopra il buffer inizierà dopo 2s e terminerà quando abbiamo 1s di intervallo se il valore ricevuto è pari altrimenti svuoterà i valori del buffer ed emetterà valori vuoti.