关于JavaScript主线程与任务队列的疑问

我看阮一峰老师的关于JavaScript运行机制的博客时(http://www.ruanyifeng.com/blo...),看到这样一句话:一旦"执行栈"中的所有同步任务执行完毕,系统就会读取"任务队列",看看里面有哪些事件。那些对应的异步任务,于是结束等待状态,进入执行栈,开始执行。
这样说的话,只有在同步任务全部完成的情况下,才会读取任务队列,那么,如果同步任务中有语句触发了任务队列中的异步任务,会在该语句执行时,读取任务队列,还是该语句等到其他同步任务完成后,才会执行?

阅读 3.4k
2 个回答

举个比较常见的栗子,以下代码:

console.log('1');
setTimeout(function(){ //异步
    console.log('2');
},0);
console.log('3');

结果:

clipboard.png

异步就是最后执行的那个。

会加入到消息队列,等待执行。
建议好好看一下这个分享,你就明白了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题