Cadenas de Promesas en JavaScript
Tengamos la siguiente promesa:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve('string');
}, 3000);
});
Al completarse la promesa, mostraremos su resultado en la consola:
promise.then(
function(result) {
console.log(result); // mostrará 'string'
}
)
Ahora no mostraremos el resultado inmediatamente,
sino que lo modificaremos y lo devolveremos mediante return:
promise.then(
function(result) {
return result + '!';
}
);
En este caso, podemos aplicar otro then al resultado de nuestro
then, creando así una cadena de métodos. Donde al
resultado del siguiente método llegará
lo que devolvió mediante return el anterior:
promise.then(
function(result) {
return result + '!';
}
).then(
function(result) {
console.log(result); // mostrará 'string!'
}
);
De esta manera, se puede construir una cadena de cualquier longitud:
promise.then(
function(result) {
return result + '1';
}
).then(
function(result) {
return result + '2';
}
).then(
function(result) {
return result + '3';
}
).then(
function(result) {
console.log(result); // mostrará 'string123'
}
);