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.

Produzione