Escrito por Manuel Aguilar Rodriguez
31 de julio de 2019
Entonces, ¡que sucede con los procesos asíncronos en Nodejs! Hemos escuchado de los procesos asíncronos pero ¿qué son y cómo Nodejs los maneja?
Primero, ¿qué es un proceso síncrono?, en palabras sencillas un método o proceso síncrono se le denomina cuando un proceso se ejecuta después de otro bajo una secuencia o sincronización, por lo que un proceso asíncrono, no se encuentra bajo ninguna secuencia y se ejecuta de manera separada la resto de los procesos, lo cual quiere decir que no espera ningún otro proceso.
Generalmente, los proceso asíncronos se encargan de realizar operaciones de entrada/salida, peticiones a servidores o lectura y escritura de archivos en disco.
Sin embargo, siempre es necesario poder esperar o manipular los datos que genera una tarea asíncrona, para ello en Nodejs es posible manipularlas con en método de callbacks y mediante el manejo de promesas (promise).
La mejor manera de manejar los procesos asíncronos es mediante las promesas, debido a que el método de callbacks presenta ciertas desventajas, los llamados CallBackHell o Pyramid of Doom .
Para ejemplificar las promesas veremos un ejemplo usando una conexión a mongodb de un post anterior. Las herramientas que usaremos son las siguientes:
Una promesa en Nodejs, se puede manipular mediante la palabra reservada promise y se encuentra conformada principalmente por retornar dos valores de respuesta: resolve() que devuelve el valor cuando es exitosa la operación realizada de la tarea asíncrona y reject() cuando la operación arroja algún error.
En el siguiente ejemplo crearemos una promesa para manipular una petición a una colección en mongodb para insertar datos, usaremos la función resolve() para devolver el valor éxitoso de la consulta y reject() para retornar el mensaje de error.
Como podemos ver el uso de promesas es bastante sencillo y claro de implementar con nodejs, con esto el manipular las tareas asíncronas se convierte en un proceso fácil. Si quieres saber mas acerca de el uso de promesas y procesos asíncronos puedes consultar la documentación: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise
Promesas en NodeJs was originally published in 200 Response on Medium, where people are continuing the conversation by highlighting and responding to this story.