gpt4 book ai didi

javascript - setTimeout 不会产生正确的异步行为

转载 作者:行者123 更新时间:2023-11-28 12:12:06 25 4
gpt4 key购买 nike

我在面试时遇到了以下问题。看不出它出了什么问题。

以下代码尝试按顺序运行 10 个任务,并在每个任务后超时 1 秒。给定下面这段代码,请找出其中的问题,并根据初衷写出正确的实现。

for (let i = 0; i < 10; i++) {
setTimeout(function() {
// Running some asynchronous tasks here
// ...
console.log("completed task id " + i);
}, 1000)
}

最佳答案

您可以尝试使用 async function等待promise将会得到解决。

async function toDo() {
for (let i = 0; i < 10; i++) {
await new Promise(res => {
setTimeout(() => {
// Running some asynchronous tasks here
// ...
console.log('completed task id ' + i)
res()
}, 1000)
})
}
}

toDo()

关于javascript - setTimeout 不会产生正确的异步行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59774790/

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