// 主线程从上到下按顺序执行 // 遇到宏任务会将宏任务放入宏队列中,遇到微任务会将其放入微队列中。 // 主线程运行完毕,然后清空微队列,之后会从宏队列取出一个宏任务作为主线程运行新的一轮循环 // 宏任务 setTimeout, setImmediate, requestAnimationFrame // 微任务 Promise, Process.nextTick console.log(1) setTimeout(() => { console.log(4) Promise.resolve().then(() => console.log(5)) }, 0) Promise.resolve().then(() => { console.log(3) setTimeout(() => console.log(6), 0) }) console.log(2)