¿Qué son las promises de JavaScript?
Las promises son contenedores para valores que aun no están disponibles, pero que eventualmente lo estarán.
Las promises se han convertido en la forma estándar de manejar funciones asíncronas en JavaScript.
Creando una promise
var promise = new Promise(function(resolve, reject) => {
var isSuccessful = true;
if(isSuccessful) resolve("Success");
else reject(Error("failure"));
})
El constructor new Promise(callback)
recibe un callback con 2 argumentos resolve
y reject
.
Resolve
La función resolve
es utilizada para cambiar el estatus de una promise de pendiente a completa.
Reject
La función reject()
es utilizada para cambiar el estatus de una promesa de pendiente a rechazada.
Una vez que resolve()
o reject()
es invocada, las llamadas futuras a cualquiera de estas, no tendrán efecto.
Promise.resolve() y Promise.reject()
Promise.resolve()
es utilizada para regresar una promesa que ya ha sido cumplida. Así mismo, el método Promise.reject()
puede ser utilizado para retornar una promesa que se ha rechazado. Ambos métodos pueden ser llamadas fuera del constructor new Promise()
.
Promesa cumplida.
var promesaCumplida = Promise.resolve("se ha cumplido");
Promesa rechazada.
var promesaRechazada = Promise.reject("se ha rechazado");
Si otra promesa es pasada como argumento al resolve de una nueva promesa, el valor de cumplimiento de la nueva promesa toma el valor de la anterior.
var primeraPromesa = Promise.resolve("se ha cumplido");
var segundaPromesa = Promise.resolve(primeraPromesa);