我想为resellers数组中的每个成员并行调用queryDatabase函数,但似乎无法找到一种方法来执行此操作,因为每次调用都会返回'然后'部分...当我拿走await时,日志打印为空,因为承诺没有完成,但我相信await使它顺序
// TODO: MAKE PARALLEL
async function findOrgs(resellers) {
var ao = [];
for(const rese of resellers) {
await queryDatabase(rese)
.then((results) => {
ao = ao.concat(results.map(re => re._id));
})
}
console.log("done!", ao);
}
是否可以使其并行?
答案 0 :(得分:2)
改为使用Promise.all
:
async function findOrgs(resellers) {
const idArrs = await Promise.all(resellers.map((rese) => (
queryDatabase(rese)
.then(results => results.map(({ _id }) => _id))
)))
const ao = [].concat(...idArrs);
console.log("done!", ao);
}