¿Por qué usamos promesa en los métodos de devolución de llamada en Node.js?

Permítanme modificar la pregunta ¿por qué usamos Promesas en lugar de métodos de devolución de llamada en Node JS?

Como el nodo js es asíncrono, el nodo js sigue procesando las solicitudes antes de responder a la solicitud anterior.

Entonces, ¿qué es una promesa? Veamos una definición:

Una promesa es una abstracción para la programación asincrónica. Es un objeto que representa el valor de retorno o la excepción generada por una función que tiene que realizar un procesamiento asincrónico. – Kris Kowal

Las devoluciones de llamada son el mecanismo más simple posible para el código asincrónico en JavaScript. Desafortunadamente, las devoluciones de llamada sin procesar sacrifican el flujo de control, el manejo de excepciones y la semántica de funciones familiares del código síncrono. Las promesas proporcionan una forma de recuperar esas cosas.

El componente central de un objeto de promesa es su método. El método de then es cómo obtenemos el valor de retorno (conocido como el valor de cumplimiento ) o la excepción lanzada (conocida como el motivo de rechazo ) de una operación asincrónica. then toma dos devoluciones de llamada opcionales como argumentos, que llamaremos onFulfilled y onRejected :

Espero que tenga alguna idea de por qué estamos usando Promesas en lugar de Callbacks. Aquí hay un artículo de Marc Harter, eche un vistazo a este artículo, obtendrá más ideas tal como explicó al comparar Callbacks y las promesas.

Las promesas se utilizan para devolver el valor correcto de la función de devolución de llamada. Debido a la naturaleza asincrónica de nodejs. Podría terminar devolviendo un valor incorrecto en respuesta a la función.