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.