windowToggle
Acumula valores del Observable fuente en un Observable anidado (ventana). Cada ventana se abre cuando un 2º Observable emite, y se cierra cuando un 3er Observable retornado por una función emite
Descripción
Ejemplos
import { fromEvent, interval } from "rxjs";
import { windowToggle, mergeAll, map, filter, tap } from "rxjs/operators";
const number$ = interval(1000);
// Emitirá cuando se presione una tecla numérica (0, 1, 2, 3, 4, 5, 6, 7, 8 o 9)
const numericKey$ = fromEvent<KeyboardEvent>(document, "keydown").pipe(
map(({ key }) => +key),
filter((key) => !isNaN(key))
);
number$
.pipe(
windowToggle(numericKey$, (n) => interval(n * 1000)),
tap((_) => console.log("Nueva ventana")),
mergeAll()
)
.subscribe(console.log);
// Salida: (pulsar 5) Nueva ventana, 0, 1, 2, 3, 4 (pulsar 2) Nueva ventana, 5, 6Ejemplo de la documentación oficial
Recursos adicionales
Last updated
