Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Programación Reativa con RxJS

Programación Reativa con RxJS

Alfredo Bonilla

September 07, 2019
Tweet

More Decks by Alfredo Bonilla

Other Decks in Technology

Transcript

  1. Hola Soy Alfredo Bonilla. Desarrollador de Software. Co-organizdor de Angular

    Costa Rica. Colaborador en GDG Pura Vida. Quejas y sugerencias -> @brolag
  2. Callbacks • Un calback es una función que toma como

    argumento otra función y la ejecuta.
  3. Promises • Una promesa representa un valor que puede estar

    disponible ahora, en el futuro o nunca. • Tienen 3 posibles estados: • Pending • Fulfilled • Rejected
  4. Promises • Sin embargo las promesas presentan un problema: solo

    producen un valor único. • En un escenario complejo donde existan eventos recurrentes, o flujos de datos, ya que es necesario manejar por separado cada evento.
  5. Async / Await • Para usar async/await debe mos declarar

    una función con el modificador async. • Esto nos permite añadir el modificador await dela nte de la expresión asíncrona en dicha función, deteniendo la ejecución hasta que se resuelva la expresión.
  6. ¿Qué es la programación reactiva? • Es un paradigma de

    programación que se preoucupa por los flujos de datos y la propagación del cambio. • Según el reactive manifesto, los sistemas reactivos deben ser: • Responsivos. • Resilientes. • Elásticos. • Orientados a mensajes.
  7. ¿Qué son los streams? • Un stream podría definirse como

    una colección de elementos futuros. • La diferencia consiste en que los streams no están disponibles de forma síncrona y tampoco podemos predecir su tamaño. • Un stream puede provenir de varias fuentes: • Eventos del DOM. • Animaciones. • HTTP Requests. • WebSockets.
  8. ¿Qué es RxJS? • RxJS es una implementación para JavaScript

    de las Reactive Extensions. • Desarrolladas por Erik Meijer en Microsoft en el 2009. • Es una librería para trabajar con streams mediante el uso de observables. • “El Lodash de los eventos asíncronos”
  9. Observables • Soporte para enviar mensajes entre publishers y subscribers.

    • Ofrecen beneficios significativos para manejar la asincronía. • Los observables son lazy (perezosos). No comienzan a emitir datos hasta que te suscribes a ellos. • Un observable puede indicar cuándo se completa la secuencia. • Nos permiten declarar cómo reaccionar a una secuencia de elementos, en lugar de tener que reaccionar a los elementos de forma individual.
  10. map

  11. map

  12. Recursos • Ejemplos de código: • https://stackblitz.com/edit/taller-rxjs • https://github.com/brolag/taller-rxjs-starter •

    Referencias • https://softwarecrafters.io/javascript/introduccion-programacion-reactiva- rxjs • https://pablomagaz.com/blog/combinando-observables-en-rxjs • https://medium.com/@nicowernli/diferencias-entre-map-flatmap-y- switchmap-en-rxjs-64662e90f701 • Herramientas • https://www.learnrxjs.io/ • https://rxviz.com/ • https://rxmarbles.com/