- 在程序执行开始时,先进入主程序中执行
- 等主程序中执行完毕之后进入事件循环【微任务(microTask)+事件队列】
主程序:如console.log(1),还有Promise中.then前的console.log()都在主程序中执行
↓
微任务:process.nextTask和Promise.then都存放在微任务中执行,并且process.nextTask()比Promise.then的优先级高,所以process.nextTask()先执行
↓
事件队列:setTimeout()、setInterval()、ajax等都存放在事件队列中,在队列中按照“先进先出”(即,先进的先执行)
总结:
主程序 → process.nextTask() → Promise.then() → 事件队列
题1:
setTimeout(() =>console.log(1),0);
console.log(2);
const