请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

SetTimeout异步

for(let i = 0; i < 10; i++) {
  setTimeout(function() {
    console.log(i)
  }, 1000)
}

老师好,上面这种代码情况,为什么输出结果是间隔一秒后,一次性输出0-9呢?
难道任务队列里的10个setTimeout异步任务,是同时执行的?
为什么不是一个一个执行,比如先输出0,间隔一秒后再输出1…

正在回答 回答被采纳积分+3

1回答

双越 2021-10-29 08:26:21

你可以在 setTimeout 的后面加一句 console.log(Date.now) ,看看这 10 次 setTimeout 是不是同时执行的?

如果 10 个 setTimeout 都是同时执行的,那 setTimeout 里的函数也都一次性同时执行,这没毛病。

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信