Вы можете связать обещания следующим образом:
function f1() {
return new Promise(function(resolve) {
setTimeout(() => resolve('f1'), 1000);
});
}
function f2() {
return new Promise(function(resolve) {
setTimeout(() => resolve('f2'), 1000);
});
}
function f3() {
return new Promise(function(resolve) {
setTimeout(() => resolve('f3'), 1000);
});
}
// Chain promises
f1()
.then((res) => {
console.log(res + ' done!')
return f2()
})
.then((res) => {
console.log(res + ' done!')
return f3()
})
.then((res) => {
console.log(res + ' done!')
})
Или вы можете группировать обещания:
function f1() {
return new Promise(function(resolve) {
setTimeout(() => resolve('f1'), 1000);
});
}
function f2() {
return new Promise(function(resolve) {
setTimeout(() => resolve('f2'), 1000);
});
}
function f3() {
return new Promise(function(resolve) {
setTimeout(() => resolve('f3'), 1000);
});
}
// Group promises
Promise.all([f1(), f2()])
.then((responses) => {
console.log(responses.join(', ') + ' done!')
return f3()
})
.then((res) => {
console.log(res + ' done!')
})