gpt4 book ai didi

javascript - 如何在 JavaScript 中使用 async/await 延迟数组回调?

转载 作者:行者123 更新时间:2023-11-29 10:27:24 24 4
gpt4 key购买 nike

我正在尝试使用异步等待在循环中的每次迭代之间放置一个延迟。我有一个辅助 sleep 功能:

const sleep = ms => {
return new Promise(resolve => {
setTimeout(resolve, ms);
});
}

这在每个循环之间正确等待:

for (let i = 0; i < 5; i++) {
console.log('waiting')
await sleep(1000)
}

但是,这不是在每个循环之间等待:

[0, 1, 2, 3, 4].forEach(async () => {
console.log('waiting')
await sleep(1000)
});

我如何修改 forEach 代码块使其表现得像常规 for 循环 block 一样,在 for 循环的每次迭代之间有延迟?

最佳答案

理论上,您可以建立一个 promise 链,使用reduce会稍微漂亮一些,但同样的模式也可以用forEach来完成:

[0, 1, 2, 3, 4].reduce(async (previous) => {
await previous;
console.log('waiting')
await sleep(1000)
});

但是...为什么不直接使用 for 循环呢?

关于javascript - 如何在 JavaScript 中使用 async/await 延迟数组回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55464706/

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