# 事件循环

宏任务:script (整体代码)、setTimeout、 setInterval、 setlmmediate、 I/O、 UI rendering 微任务: promise、Object.observe(废弃)、MutationObserver 任务的优先级:process.nextTick > promise.then > setTimeout > setlmmediate

执行顺序:

  • 先同步后异步
  • 先宏任务后微任务

setTimeout

其中定时任务是先放入定时模块,到时间后才放入任务队列执行,而setTimeout为0ms时,其实真实时间大约为4ms