Autor Tema: RXJS. Observables II  (Leído 211 veces)

DavidX

  • Newbie
  • *
  • Mensajes: 11
    • Ver Perfil
RXJS. Observables II
« en: Agosto 18, 2021, 09:03:51 pm »
RXJS. Observables II (observers)
_____________________________________

Continuamos basándonos en el ejemplo del tutorial anterior http://iotelectronica.com/index.php?topic=18.0. En ese caso nos fijaremos en los observers.

En el capítulo anterior dijimos que a la subscripción a un observable le pasábamos un observer que recibe las notificaciones del emisor de notificaciones (la notificaciones las emite un subscriber)

 El código del tutorial anterior era este:

Código: [Seleccionar]
const obs = new Observable(subs=>{ //"subs" es un subscriber. Lo que hace un subscriber es notificar a las subscripciones, básicamente avisarles enviándoles mensajes.

  subs.next("mensaje_1"); //Con "next" lo que hacemos es mandar una notificación a las subscripciones.
  subs.next("mensaje_2");
  subs.next("mensaje_3");
  subs.next("mensaje_3");
  subs.next("mensaje_4");
  subs.complete(); //Con "complete" dejamos de emitir notificaciones a las subscripciones.

});

//Para ejecutar un observable al menos debe tener una subscripción. "obs" es una subscripción que recibe notificaciones del anterior subscriber denominado "subs".
obs.subscribe(valor=>{                  //"valor" es un observer. Dicho observer lo que hace es recibir las notificaciones del anterior subscriber llamado "subs" me diante la subscripción al observer.
  console.log("mensaje: " + valor);
});


Vamos a hablar ahora del observer llamado valor del código anterior. Un observer en realidad es un interface. Dicho observer los subscribimos al observable:

Código: [Seleccionar]
obs.subscribe(
              valor =>console.log("mensaje: " + valor),  //la primera función que le pasamos, recibe la notificación de [b]subs.next()[/b] del subscriber.
              error=> console.log(error),                       //la segunda función que le pasamos, recibe la notificación en caso de que haya habido un error del subscriber.
              ()=>console.log("completadoooooo"));      //la tercera función que le pasamos, recibe la notificación [b]subs.complete()[/b] del subscriber.
);

El nuevo código quedaría así:


Código: [Seleccionar]
const obs = new Observable(subs=>{ //"subs" es un subscriber. Lo que hace un subscriber es notificar a las subscripciones, básicamente avisarles enviándoles mensajes.

  subs.next("mensaje_1"); //Con "next" lo que hacemos es mandar una notificación a las subscripciones.
  subs.next("mensaje_2");
  subs.next("mensaje_3");
  subs.next("mensaje_3");
  subs.next("mensaje_4");
  subs.complete(); //Con "complete" dejamos de emitir notificaciones a las subscripciones.

});

//Para ejecutar un observable al menos debe tener una subscripción. "obs" es una subscripción que recibe notificaciones del anterior subscriber denominado "subs".
obs.subscribe(
              valor =>console.log("mensaje: " + valor),
              error=> console.log(error),
              ()=>console.log("completadoooooo"));
);



« Última modificación: Agosto 18, 2021, 10:49:08 pm por DavidX »