setTimeout 的问题

setTimeout 的问题

setTimeout 是立即挂到任务队列等时间到了才能进入执行栈,还是等时间到了再挂入任务队列

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,setTimeout是一个异步的宏任务,当执行setTimeout时是将回调函数在指定的时间之后放入到宏任务队列。但如果此时主线程有很多同步代码在等待执行,或者微任务队列以及当前宏任务队列之前还有很多任务在排队等待执行,那么要等他们执行完成之后setTimeout的回调函数才会被执行


  • 假设 setTimeout 的时间为 1000,并且此时主线程同步代码需要 1500 执行完毕。那么 1000 后会把回调函数放到宏任务里,但是需要 1500 之后才能被执行

    2021-05-21 14:04:10
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师