gpt4 book ai didi

javascript - 等待/异步不在 for 循环中工作

转载 作者:行者123 更新时间:2023-11-30 14:47:46 25 4
gpt4 key购买 nike

<分区>

我想按顺序处理批量数据,如下面的代码所示。在这种情况下,单个批处理只是一个包含值的数组。所以函数 sendInBatches() 需要一个数组数组作为输入。

async sendInBatches(batches) {
for (const batch of batches) {
const promises = batch.map(x => asyncMethod(x));
await Promise.all(promises);
}
}

下面是 asyncMethod() 的代码。请注意,asyncMethod() 实际上并未对提供的参数执行任何操作。它只是返回一个在 1 秒后解析的 Promise。

asyncMethod(batch){
return new Promise((resolve) => {
setTimeout(
() => {
console.log('x');
resolve();
}
, 1000,
);
});

}

我试着像这样运行代码:

sendInBatches([[1,2,3],[4,5,6],[7,8,9]]).then(console.log('done'));

这提供了输出:

done
x
x
x

虽然我希望它返回:

x
x
x
done

我不知道这里出了什么问题,你们有什么想法吗?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com