Retornando una promise dentro de then()
Retornar una nueva Promise dentro de then()
provocará que este método retorne esta nueva promise.
var promise = Promise.resolve("hola");
var promise2 = promise.then((result) => {
console.log(result); // imprime 'hola'
return Promise.resolve("12345"); // retorna un nuevo promise con el valor 12345
});
promise2.then(function (result) {
console.log(result); // 12345
});
¿Cómo realizar operaciones asíncronas secuenciales con Promises?
Las operaciones asíncronas pueden ser secuenciadas retornando Promises dentro de los callbacks then()
.
obtenerNumeroAleatorio()
.then(function (result) {
console.log(result);
return obtenerNombreDesdeNumero(result);
})
.then(function (result2) {
console.log(result2);
return obtenerEdadDesdeNombre(result2);
})
.then(function (result3) {
console.log(result3);
})
.catch(function (error) {
console.log(error);
});
Si cualquiera de las funciones
then()
retorna una Promise rejectedcatch()
capturara dicho resultado.