Uso de los Observables

Clase 68 de 80Curso de Angular 4

Resumen

Los Observables en RxJS cambian la forma de manejar datos asíncronos: permiten flujos continuos, cancelación y operadores avanzados. A diferencia de las promesas de http, que resuelven un único valor, los Observables notifican cada cambio y facilitan interfaces reactivas, como se ve en Platzi Square con actualizaciones automáticas desde Firebase.

¿Qué son los Observables en RxJS?

Los Observables son objetos a los que te suscribes para recibir notificaciones cuando ocurre algo: un cambio, datos nuevos o un error. Funcionan como un stream de eventos que puede emitir muchos valores en el tiempo, incluso de forma indefinida.

¿Cómo funcionan la suscripción y las notificaciones?

  • Te suscribes a un Observable y recibes eventos nuevos cuando ocurren cambios.
  • Puedes manejar tres canales: datos, error y finalización.
  • El flujo puede ser finito o potencialmente infinito.

¿Por qué es útil cancelar un Observable?

  • Porque el flujo puede seguir emitiendo indefinidamente.
  • Para liberar recursos cuando ya no necesitas escuchar cambios.
  • Para limpiar código al cerrar vistas o al salir de la aplicación.
  • Porque la cancelación es manual y controlada por quien se suscribe.

¿Cómo se comparan Observables y promesas http?

Aunque ambos se usan en lógica asíncrona, no ofrecen lo mismo. Las promesas de http entregan un único resultado o error y terminan. Los Observables pueden emitir múltiples valores y notificar cada actualización.

¿Qué entrega http y qué entrega un Observable?

  • http: retorna una promesa con un solo objeto o un error.
  • Observables: retornan un stream con muchos objetos a lo largo del tiempo.
  • http: avisa al resolver o al fallar y termina.
  • Observables: avisan cada vez que hay algo nuevo y pueden continuar.
  • http: no tiene cancelación nativa del flujo resuelto.
  • Observables: permiten cancelar la suscripción cuando sea necesario.

¿Qué operadores existen?

  • http: usa métodos limitados como then para éxito y catch para errores.
  • Observables: disponen de muchos operadores; ya se usó uno: map.
  • Los operadores permiten transformar, filtrar y combinar emisiones sin mutar la fuente.

¿Cómo se aplican en Platzi Square con Firebase?

Al crear un nuevo lugar, la lista se actualiza automáticamente en otra vista o incluso en otra computadora. Esto ocurre porque hay una vigilancia tipo watch sobre la lista: cuando cambia en Firebase, el Observable notifica y la interfaz se actualiza sin acciones extra.

¿Qué evidencia muestra la actualización en tiempo real?

  • Se ingresa un nuevo lugar: “Zapatería El Clavo”.
  • Se envían datos: distancia, cercanía, url de Facebook, plan, dirección y ciudad.
  • Tras enviar, aparece de inmediato en la lista, junto a elementos previos como Consulado Paisa y Arepas Ricas.
  • Este comportamiento confirma que ya se están usando Observables para escuchar cambios y reflejarlos en pantalla.

¿Qué viene después con type ahead?

  • Se implementará conscientemente el uso de Observables para un type ahead, aprovechando emisiones múltiples y operadores.

¿Tienes preguntas o ejemplos propios con Observables y http? Comparte tu experiencia y dudas para profundizar juntos.