js事件循环
js事件循环
事件循环基础
- js在最初设计的时候就是单线程的。但是在处理一些等待事件较长的操作时(比如有:异步请求)
- 所以js必须要有异步 。js通过事件循环来实现异步 这也是js的运行机制。
事件循环分类
- 遇到同步任务直接执行
- 遇到异步任务分类为宏任务(macro-task)和微任务(micro-task)。
宏任务与微任务
- 宏任务(macro-task):整体代码,setTimeout,setInterval等
- 微任务(micro-task):promise,Object.observe,MutationObserver
demo
输出结果 
总结
- 有微则微,无微则宏
- 先执行同步代码,遇到异步宏任务则将异步宏任务放入宏任务队列中,遇到异步微任务则将异步微任务放入微任务队列中,当所有同步代码执行完毕后,再将异步微任务从队列中调入主线程执行,微任务执行完毕后再将异步宏任务从队列中调入主线程执行,一直循环直至所有任务执行完毕。

浙公网安备 33010602011771号