Promesas de JavaScript

Definición

Las promesas son:

  • Objetos que representan un valor que puede estar disponible ahora, en el futuro o nunca.
  • Un mecanismo para manejar operaciones asincrónicas de una manera más organizada y legible.
  • Permiten realizar tareas como solicitudes de red, operaciones de archivo o cualquier operación que tome tiempo, sin bloquear la ejecución del programa y sin necesidad de callbacks anidadas, conocidas como "Callback Hell".

Sintaxis

let myPromise = new Promise(function(myResolve, myReject) {
// "Producing Code" (May take some time)
myResolve(); // when successful
myReject(); // when error
});
// "Consuming Code" (Must wait for a fulfilled Promise)
myPromise.then(
function(value) { /* code if successful */ },
function(error) { /* code if some error */ }
);

Estados de una promesa

Pendiente (Pending):

El estado inicial de una Promesa antes de que se resuelva o se rechace.

Resuelta (Fulfilled):

La Promesa se ha resuelto con éxito y devuelve un valor.

Rechazada (Rejected):

La Promesa ha sido rechazada debido a un error y devuelve una razón.

Métodos de una promesa

.then(onFulfilled, onRejected):

Se utiliza para adjuntar funciones de callback que se ejecutan cuando la Promesa se resuelve con éxito (en el estado "Fulfilled") o cuando se rechaza (en el estado "Rejected"). La función onFulfilled se ejecutará con el valor resuelto y la función onRejected se ejecutará con la razón del rechazo.

.catch(onRejected):

Un atajo para manejar solo el caso de rechazo, es equivalente a llamar a .then(null, onRejected).