Rxjs: unidifusión y multidifusión
Unicast significa que cada instancia de un valor de observación normal solo puede ser suscrita por un observador, y cuando es suscrita por otros observadores, se crea una nueva instancia. Es decir, cuando diferentes observadores suscriben observaciones ordinarias, tendrán varias instancias y cada instancia enviará su valor al observador correspondiente desde el principio, independientemente de cuándo el observador comience a suscribirse.
Una variante de Subject es BehaviorSubject, que tiene un concepto de "valor actual". Contiene el último valor enviado al consumidor, y cuando un nuevo observador se suscribe, recibirá ese valor del BehaviorSubject tan pronto como reciba el "valor actual".
Al igual que en BehaviorSubject, es posible enviar valores antiguos a nuevos suscriptores, pero no sólo el "valor actual", sino también los valores antiguos anteriores.
Solo cuando el Observable complete la ejecución (ejecutando complete()), enviará el último valor de la ejecución al observador.
Al igual que el último operador, también espera hasta que el Observable complete la ejecución antes de emitir el último valor. Si el objeto Observable aún no está completo cuando el observador está suscrito, el observador no recibirá el valor, solo recibirá su último valor cuando se complete el Observable. Si el objeto observado ya está completo cuando llega el observador suscrito, entonces puede recibir el último valor del objeto observado inmediatamente.
Un objeto observado en frío solo comenzará a producir valores cuando el observador se suscriba. Es unidifusión, se generan tantas instancias de suscripción como suscripciones hay, y cada suscripción recibe el valor del primer valor generado, por lo que cada suscripción recibe el mismo valor.
Los objetos de vigilancia activa generan valores independientemente de si están suscritos o no. Es multidifusión, varias suscripciones comparten la misma instancia y reciben valores desde el inicio de la suscripción, cada suscripción recibe un valor diferente según la hora en que comenzó a suscribirse.
A mi edad, todavía tengo todo un futuro por superar, y tú también.
refCount
Cuando se utiliza refCount, es una variable observable contada por referencia.
Esto significa que cuando el primer suscriptor comienza a suscribirse, comienza a enviar y generar valores.
El segundo suscriptor (y los suscriptores posteriores)*** Una instancia observable que tiene el primer suscriptor; y se da de baja automáticamente cuando no hay suscriptores, luego se volverá a suscribir y comenzará a enviar valores desde el principio nuevamente;
connect
Cuando llamamos al método ConnectableObservable.prototype.connect, enviará el valor ya sea que esté suscrito o no.
Los suscriptores comparten la misma instancia y el valor que reciben depende de cuándo comenzaron a suscribirse. En nuestro ejemplo, la primera suscripción espera un segundo para recibir el valor de 2, mientras que la segunda suscripción espera dos segundos para recibir el valor de 3.
hotObservable .publish() .
Por lo tanto, también necesita hotObservable$ para conectarse o refCount