Javascript 事件循环
事件循环:Javascript是单线程的,但是又需要一种机制来处理多个块的执行。
且执行每个块时调用Javascript引擎,这种机制称为事件循环,与事件绑定概念毫无关系。
事件循环分了部分:主线程、宏队列、微队列,异步代码都会被丢进宏/微队列
- 宏任务:script, setTimeout, setInterval, setImmediate, I/0, UI rendering
- 微任务:process.nextTick, promise. then(), object.observe, Mutationobserver
主线程只有一个,且执行顺序为:
- 1、先执行主线程
- 2、遇到宏任务放到宏队列
- 3、遇到微任多放到微队列
- 4、主线程执行完毕
- 5、优先执行微队列,微队列执行完毕
- 6、执行一次宏队列的任务,执行完毕
- 7、执行微队列,执行完毕
- 8、依次循环。。
两个队列可以理解为两个数组,不停执行两个数组里面的东西,空了就不执行。
Javascript 事件循环
http://seddon.lol/2023/01/06/Javascript-事件循环/