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.


One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.