我想按以下顺序执行我的代码:
我在搞清楚方面遇到了一些麻烦,到目前为止,我的代码还在下面。
function getPromise1() {
return new Promise((resolve, reject) => {
// do something async
resolve('myResult');
});
}
function getPromise2() {
return new Promise((resolve, reject) => {
// do something async
resolve('myResult');
});
}
function getPromise3() {
return new Promise((resolve, reject) => {
// do something async
resolve('myResult');
});
}
getPromise1()
.then(
Promise.all([getPromise2(), getPromise3()])
.then() // ???
)
.then(() => console.log('Finished!'));
答案 0 :(得分:41)
只需返回Promise.all(...
getPromise1().then(() => {
return Promise.all([getPromise2(), getPromise3()]);
}).then((args) => console.log(args)); // result from 2 and 3
答案 1 :(得分:9)
我知道这是一个旧线程,但不是
() => {return Promise.all([getPromise2(), getPromise3()]);}
有点多余?胖箭的想法是你可以把它写成:
() => Promise.all([getPromise2(), getPromise3()])
使得结果代码更加清晰:
getPromise1().then(() => Promise.all([getPromise2(), getPromise3()]))
.then((args) => console.log(args)); // result from 2 and 3
无论如何,谢谢你的回答,我坚持这个:)