RxJS - Tampon d'opérateur de transformationToggle

Dans le cas de bufferToggle, il prend 2 arguments, ouvertures et closingSelector. Les arguments d'ouverture sont un abonné ou une promesse de démarrer le tampon et le second argument closingSelector est à nouveau abonné ou promet un indicateur pour fermer le tampon et émettre les valeurs collectées.

Syntaxe

bufferToggle(openings: SubscribableOrPromise, closingSelector: SubscribableOrPromise): Observable

Paramètres

openings - Une promesse ou une notification pour démarrer le nouveau tampon.

closingSelector - Une fonction qui prendra les valeurs des ouvertures observables et retournera Subscribable ou promise.

Valeur de retour

Un observable sera retourné, qui aura un tableau de valeurs tamponnées.

Exemple

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));

Dans l'exemple ci-dessus, le tampon commencera après 2s et se terminera à 1s intervalle si la valeur reçue est égale sinon il videra les valeurs du tampon et émettra des valeurs vides.

Production