Promesas en NodeJs

Manuel Aguilar Rodriguez
200 Response
Published in
2 min readJul 31, 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

--

--