原文:mp.weixin.qq.com/s/B2TPyvwgI…
事件循环是指 js中各种同步异步任务按照某种顺序执行的机
JS是单线程的,并维护两个任务队列,宏任务队列和微任务队列
浏览器端的事件循环执行顺序按照下面三个大步骤进行:
- JS首先从宏任务队列中取出一个任务执行
- 执行完毕,再取出微任务队列的所有微任务,注意是所有
- 检查是否到了渲染时间,如果是,则触发渲染操作 至此一个简单的事件循环就结束了。之后再开启下一个事件循环,返回第一步,周而复始的重复这三个步骤。
宏任务:
- setTimeout
- setInterval
- I/O事件
- UI渲染
- script代码块
- setImmdiate
微任务:
- Promise的then和catch回调
- MutationObserver
- process.nextTick