multicast
Comparte el Observable fuente utilizando un Sujeto
Descripción
Ejemplos
import { ConnectableObservable, interval, Subject, timer } from "rxjs";
import { take, tap, multicast } from "rxjs/operators";
const number$ = interval(1000).pipe(take(2));
// Al usar multicast, estamos convirtiendo el Observable number$ en un Observable caliente
const multicasted$ = number$.pipe(
tap(() =>
console.log(
"Observable caliente, efecto secundario se ejecuta una sola vez"
)
),
multicast(() => new Subject())
) as ConnectableObservable<number>;
// number$ no comenzará a emitir valores hasta que no llamemos al método connect()
timer(3000)
.pipe(tap(() => console.log("Conectado")))
.subscribe(() => multicasted$.connect());
multicasted$.subscribe(val => console.log(`Observador 1: ${val}`));
multicasted$.subscribe(val => console.log(`Observador 2: ${val}`));
/* Salida:
(3s)
Conectado
(1s)
Observable caliente, efecto secundario se ejecuta una sola vez,
Observador 1: 0,
Observador 2: 0,
(1s)
Observable caliente, efecto secundario se ejecuta una sola vez,
Observador 1: 1,
Observador 2: 1,
*/Recursos adicionales
Last updated
