假设我要在 nodejs 应用程序中执行 1000 个异步操作。我不能一次解雇所有这些,所以我决定以 100 个为一组来运行它们。有些 promise 可能需要更少的时间,有些则需要更多的时间。我希望一旦一个承诺得到履行,我就开始另一个承诺,这样我将始终有 100 个承诺得到解决。
我用了Promise.all like
const prArr = [];
for (let i = 0; i < 1000; i++) {
prArr.push(anAsyncFunction(i));
if (prArr.length === 100) {
await Promise.all(prArr);
}
}
这样的话,就算99解决了,一个要等很久,我也得等。是否有可能一旦任何承诺得到解决,就可以执行另一个承诺?如果可能,请提供示例。