谈谈setTimeout

谈谈setTimeout

这段setTimeout代码什么意思? 我们一般说: 3秒后,会执行setTimeout里的那个函数

 
  1. setTimeout(function(){

  2.    console.log('执行了')

  3. },3000)    

但是这种说并不严谨,准确的解释是:3秒后,setTimeout里的函数被会推入event queue,而event queue(事件队列)里的任务,只有在主线程空闲时才会执行。

所以只有满足 (1)3秒后 (2)主线程空闲,同时满足时,才会3秒后执行该函数

如果主线程执行内容很多,执行时间超过3秒,比如执行了10秒,那么这个函数只能10秒后执行了。

结果也可以侧面显示出    计时器在event queue也排到后面去了,因为同样都是异步任务  却被别人插队了(其实是自己排队排慢了)

猜你喜欢

转载自blog.csdn.net/Future1994/article/details/81392167