Promesas en NodeJs

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.