如何将 Promise.all 与其他 Promise 链接起来?
How to chain a Promise.all with other Promises?
我想按以下顺序执行我的代码:
- 承诺 1
- 等1做完,然后同时做Promise 2+3
- 最终函数等待 Promise 2+3 完成
我在弄清楚它时遇到了一些问题,目前我的代码如下。
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!'));
就returnPromise.all(...
getPromise1().then(() => {
return Promise.all([getPromise2(), getPromise3()]);
}).then((args) => console.log(args)); // result from 2 and 3
我知道这是一个旧线程,但不是
() => {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
无论如何,谢谢你的回答,我被这个困住了:)
我想按以下顺序执行我的代码:
- 承诺 1
- 等1做完,然后同时做Promise 2+3
- 最终函数等待 Promise 2+3 完成
我在弄清楚它时遇到了一些问题,目前我的代码如下。
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!'));
就returnPromise.all(...
getPromise1().then(() => {
return Promise.all([getPromise2(), getPromise3()]);
}).then((args) => console.log(args)); // result from 2 and 3
我知道这是一个旧线程,但不是
() => {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
无论如何,谢谢你的回答,我被这个困住了:)