Promises chaining
by GarfieldKlon
JavaScript
let a = function() {
return new Promise( (resolve, reject) => {
setTimeout(() => resolve(1), 300);
});
}
let b = function() {
return new Promise( (resolve, reject) => {
setTimeout(() => resolve(2), 200);
});
}
let c = function() {
return new Promise( (resolve, reject) => {
setTimeout(() => resolve(3), 100);
});
}
a().then( result => console.log(result))
.then( () => b().then( result => console.log(result)))
.then( () => c().then( result => console.log(result)));
let d = function() {
return a()
.then( () => b().then( () => c() ) );
}
d().then( result => console.log("d = " + result) )
/*
new Promise(function(resolve, reject) {
setTimeout(() => resolve(1), 1000); // (*)
}).then(function(result) { // (**)
console.log(result); // 1
return result * 2;
}).then(function(result) { // (***)
console.log(result); // 2
return result * 2;
}).then(function(result) {
console.log(result); // 4
return result * 2;
});
*/