浏览器事件循环和node事件循环

浏览器事件循环和node事件循环

浏览器事件循环:

同步任务在主线程执行,在主线程外还有个任务队列用于存放异步任务

主线程的同步任务执行完毕,异步任务入栈,进入主线程执行

上述的两个步骤循环,形成eventloop事件循环 浏览器的事件循环又跟宏任务和微任务有关,两者都属于异步任务。

js异步有一个机制,就是遇到宏任务,先执行宏任务,将宏任务放入任务队列,再执行微任务,将微任务放入任务队列,他俩进入的不是同一个任务队列。往外读取的时候先从微任务里拿这个回调函数,然后再从宏任务的任务队列上拿宏任务的回调函数

宏任务:

script

定时器 setTimeout setInterval setImmediate

微任务:

promise

process.nextTick()

MutationObserver

node事件循环:

timer阶段

I/O 异常回调阶段

空闲预备阶段

poll阶段

check阶段

关闭事件的回调阶段

posted @ 2020-03-12 21:59  午亭爱成长  阅读(652)  评论(0编辑  收藏  举报