30 Días con RxJS — Día 10

Si estas leyendo esto, bienvenido al cassette número 10 de 30

Si llegaste aquí y no viste ninguno de los videos anteriores, te recomiendo empezar con el primero:


Este es el día y vamos a ver “Reference Couting”!


Llamar a connect() y handlear la suscripción es a veces engorroso. Por lo general, queremos conectarnos automáticamente cuando llegue el primer Observer y cancelar automáticamente la ejecución compartida cuando el último Observer se cancele la suscripción.

En el siguiente ejemplo las suscripciones ocurren como se describe en esta lista:

  • El primer Observer: se suscribe a la Multicaster Observable
  • El Observable multicasted: está conectado
  • El siguiente valor: 0 (cero) se entrega al primer Observer
  • El segundo Observer: se suscribe al Multicaster Observable
  • El siguiente valor 1: se entrega al primer Observer
  • El siguiente valor 1: se entrega al segundo Observer
  • El primer Observer: cancela la suscripción de la función Observable
  • El siguiente valor 2: se entrega al segundo Observer
  • EL segundo Observer: cancela la suscripción de la variable observable multicasted
  • La conexión con el Observable multicasted no está mas suscrita

Para lograr esto haremos la llamada explicita a connect ():

Si queremos evitar las llamadas explícitas a connect(), podemos usar el método “refCount()” de ConnectableObservable (count de referencia), que devuelve un Observable que registra cuántos suscriptores tiene. Cuando el número de suscriptores aumenta de 0 a 1, llamará a connect () por nosotros, lo que inicia la ejecución compartida. Sólo cuando el número de subscriptos disminuya de 1 a 0 será totalmente cancelado, deteniendo la ejecución adicional.

refCount Hace que el Multicasted Observable comience automáticamente a ejecutarse cuando llegue el primer subscribe y deje de ejecutar cuando el último subscribe se vaya.
El método refCount () sólo existe en ConnectableObservable y devuelve un Observable, no otro ConnectableObservable.

El código de lo que vimos esta en:

Esto es todo por hoy, tenemos que asentar bien las bases para poder avanzar estables mas adelante!

Te gusto? deja un comentario, contále a tus amigos desarrolladores, seamos un montón en esta aventura de 30 días.