Operadores de RxJS en Angular
¿Cómo y por qué usarlos?
El desarrollo web actual es una mezcla muy delicada entre implementaciones del pasado y estándares actuales. El pasado porque a día de hoy se mantienen ciertos "hacks" no recomendados pero útiles; y la actualidad claramente por las nuevas tecnologías involucradas en el desarrollo de aplicaciones web potentes. Tal como el uso de "programación Reactiva", mediante el -no tan famoso como debería- framework ReactiveX.
¿Qué es la programación Reactiva?
Es una combinación de los conceptos de programación funcional y los patrones de Observación e Iteración. Esto da como resultado un servicio poderoso que permite tener un control absoluto del flujo de datos en una aplicación. Supongamos que nuestra App tiene pedidos mediante HTTP Request de datos (como una imagen en otro server o un archivo de JSON de un API). Tradicionalmente, en JavaScript se recorren una a una las líneas de código y se ejecutan (por eso es un lenguaje tipo "script"). Esto lleva a problemas al momento de realizar pedidos como HTTP Request, ya que se hace el pedido al archivo pero a continuación se hace algo con dicho archivo, lo que da lugar errores. O peor, da lugar a que agreguen delays de forma azarosa para algo que no tiene que ver con los delays. En el pasado esto se solucionaba con las funciones callback. No nos engañemos, cumplieron su cometido, pero la web de la nueva década merece más.
¿Qué es una Observable?
En principio es un tipo de objeto asincrónico para Javascript, pero también es un concepto de programación. Se trata de una serie de operaciones que se realizan en un determinado orden, con la particularidad de que podremos Suscribirnos a dicha Observable. Como su nombre indica, al suscribirnos podremos "observar" dichas operaciones y obtener un trigger cada vez que se complete una, y también cuando se finalicen o se dispare un error. De esta manera, si la operación es un HTTPRequest a un archivo JSON en otro server, estaremos "observando" hasta que se devuelva de forma satisfactoria y recién ahi podremos realizar algoritmos sobre el archivo solicitado.
¿Qué son los operadores de RxJS?
Son observables preseteadas por el framework que sirven para cumplir muchas labores corrientes en este tipo de programación. Incluso existe un operador que permite enlazar operadores, creando nuestro propio operador sin tener que programar una observable de cero. Son realmente muy útiles. Por mencionar un par de ejemplos, hay operadores para mapear resultados, para concatear distintas observables, para crear listas de observables, y un largo etcétera. Mi idea es hacer entradas en el blog comentando algunos de los operadores más utilizados. No obstante, hace varios meses por nuestro canal de Youtube iniciamos un curso gratuito de RxJS donde se están explicando uno a uno los operadores. La lista de reproducción se actualiza constantemente, así que consideramos es una gran oportunidad de aprender una de las mejores herramientas de la programación web para la nueva década:
Acerca de:
Ignacio Buioli
Degree on Multimedia Arts. He has developed numerous Multimedia projects as well as written articles and translated texts of the mentioned subject. In Moldeo Interactive, He is a Partner and Programmer; also taking care of a large part of the online networks and courses.