首页 > 其他 > 详细

setTimeout的异步传输机制

时间:2017-08-05 23:28:36      阅读:256      评论:0      收藏:0      [点我收藏+]

setTimeout是异步的,在设置完setTimeout后,指定代码会在设定的时间后加入到任务队列,但并不是立即执行,js是单线程语言,所有的代码按顺序执行,即同步执行,同步执行的代码放在执行队列中,而异步执行的setTimeout放在任务队列中,执行顺序是先执行完执行队列中的代码再去查看任务队列中是否有要执行的代码

技术分享

这段代码看上去好像4应该比5先打印出来,但实际上是先打印出5再打印出4:

技术分享

就如上面所说的,1,3,5都放在执行队列中,而4,2放在任务队列中,所以4,2要等执行队列中的1,3,5执行完后再按它们设定的时间顺序执行,setTimeout所设定的时间是相对于主程序执行结束的时间,并不是一个绝对的值。

setTimeout的异步传输机制

原文:http://www.cnblogs.com/cjw-ryh/p/7291848.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!