js事件循环

js事件循环

事件循环基础

  • js在最初设计的时候就是单线程的。但是在处理一些等待事件较长的操作时(比如有:异步请求)
  • 所以js必须要有异步 。js通过事件循环来实现异步 这也是js的运行机制。

事件循环分类

  • 遇到同步任务直接执行
  • 遇到异步任务分类为宏任务(macro-task)和微任务(micro-task)。

宏任务与微任务

  • 宏任务(macro-task):整体代码,setTimeout,setInterval等
  • 微任务(micro-task):promise,Object.observe,MutationObserver

demo

输出结果 

 

 总结

  • 有微则微,无微则宏
  • 先执行同步代码,遇到异步宏任务则将异步宏任务放入宏任务队列中,遇到异步微任务则将异步微任务放入微任务队列中,当所有同步代码执行完毕后,再将异步微任务从队列中调入主线程执行,微任务执行完毕后再将异步宏任务从队列中调入主线程执行,一直循环直至所有任务执行完毕。

 

posted @ 2021-09-22 09:48  太阳东升西落  阅读(79)  评论(0)    收藏  举报