UnaryFunction<Observable<T>, ConnectableObservable<T>>: Una secuencia observable que contiene los elementos de una secuencia producida al multidifundir la secuencia fuente.
Descripción
Retorna una secuencia Observable conectable que comparte una sola suscripción a la secuencia subyacente, que contiene solo la última notificación. Para ello utiliza el operador multicast junto a un AsyncSubject internamente.
Es similar a publish, pero espera a que el Observable fuente se complete, para almacenar su último valor emitido. Al igual que publishReplay y publishBehavior, almacena este último valor emitido aunque no tenga ningún suscriptor. Si llega un suscriptor nuevo, este recibirá el valor almacenado y se completará.
Ejemplos
Compartir el Observable fuente, emitiendo únicamente su último valor
import { ConnectableObservable, interval, timer } from"rxjs";import { publishLast, tap, take } from"rxjs/operators";// number$ no empezará a emitir valores hasta que se haga una llamada a connectconstnumber$=interval(1000).pipe(take(4));constmulticasted$=number$.pipe(publishLast()) asConnectableObservable<number>;// Llamando a connectmulticasted$.connect();multicasted$.subscribe((val) =>console.log(`Observador 1: ${val}`));multicasted$.subscribe((val) =>console.log(`Observador 2: ${val}`));/* Salida:(4s)Observador 1: 3,Observador 2: 3*/
Si el Observable fuente no llega a completarse, nunca se emitirá ningún valor