js的事件循环

这个是个人理解的总结,不同人可能都有自己独到的理解方式。

说到事件循环,我们一般闪现到一个滚滚向前的车轮
微任务、宏任务、执行栈
宏任务包括整个脚本scripts,ajax,rendering,setTimeout(),setInterval(),setImmediate(),
微任务包括我们常常写到的promise.then,process.nextTick(),async下的await等
首先进入执行栈的如console.log(),立即执行,
然后开始微任务,遵循先进先出原则执行逻辑;
本轮微任务全部执行完毕后,开始执行宏任务,同样遵循先进先出原则执行逻辑