publishReplay
Comparte el Observable fuente, permitiendo que los observadores que se suscriban tarde puedan recibir los valores que se hayan emitido anteriormente
Descripción
Ejemplos
import { ConnectableObservable, interval, Subject, timer } from "rxjs";
import { publishReplay, take, tap } from "rxjs/operators";
const number$ = interval(1000).pipe(take(4));
const multicasted$ = number$.pipe(
tap(() =>
console.log("Fuente compartida, efecto secundario se ejecuta una sola vez")
),
publishReplay()
) as ConnectableObservable<number>;
multicasted$.connect();
multicasted$.subscribe(val => console.log(`Observador 1: ${val}`));
timer(3000)
.pipe(
tap(() =>
multicasted$.subscribe(val => console.log(`Observador tardío: ${val}`))
)
)
.subscribe();
/* Salida:
Fuente compartida, efecto secundario se ejecuta una sola vez,
Observador 1: 0,
(1s)
Fuente compartida, efecto secundario se ejecuta una sola vez,
Observador 1: 1,
(1s)
Fuente compartida, efecto secundario se ejecuta una sola vez,
Observador 1: 2,
Observador tardío: 0,
Observador tardío: 1,
Observador tardío: 2,
(1s)
Fuente compartida, efecto secundario se ejecuta una sola vez,
Observador 1: 3,
Observador tardío: 3
*/Recursos adicionales
Last updated