浏览器事件循环和node事件循环
浏览器事件循环和node事件循环
浏览器事件循环:
同步任务在主线程执行,在主线程外还有个任务队列用于存放异步任务
主线程的同步任务执行完毕,异步任务入栈,进入主线程执行
上述的两个步骤循环,形成eventloop事件循环 浏览器的事件循环又跟宏任务和微任务有关,两者都属于异步任务。
js异步有一个机制,就是遇到宏任务,先执行宏任务,将宏任务放入任务队列,再执行微任务,将微任务放入任务队列,他俩进入的不是同一个任务队列。往外读取的时候先从微任务里拿这个回调函数,然后再从宏任务的任务队列上拿宏任务的回调函数
宏任务:
script
定时器 setTimeout setInterval setImmediate
微任务:
promise
process.nextTick()
MutationObserver
node事件循环:
timer阶段
I/O 异常回调阶段
空闲预备阶段
poll阶段
check阶段
关闭事件的回调阶段
前端菜鸟一枚,如有错误之处,烦请指出,与大家共同进步!