const filesToTranslate = await getFilesToTranslate();
await Promise.all(filesToTranslate.map(async item => {
doExtraction(item)
}));
我想每30秒执行一次doExtraction
,以免服务器阻塞。
有那么聪明吗?
答案 0 :(得分:2)
您可以使用超时:
const filesToTranslate = await getFilesToTranslate();
for (const item of filesToTranslate) {
await new Promise(resolve => setTimeout(resolve, 30000));
doExtraction(item);
}
在循环内使用await
将暂停迭代,直到Promise
解决为止。
如果您希望第一个doExtraction
立即执行:
const filesToTranslate = await getFilesToTranslate();
for (const item of filesToTranslate) {
doExtraction(item);
if (filesToTranslate.Slice(-1) !== item) {
await new Promise(resolve => setTimeout(resolve, 30000));
}
}