Promises: Realizar operaciones secuenciales

Promises: Realizar operaciones secuenciales

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 rejected catch() capturara dicho resultado.