setTimeout属性宏任务,Promise里面的then方法属于微任务,Async/Await中await语法后面紧跟的表达式是同步的,但接下来的代码是异步的,属于微任务。
同步--异步--微任务--宏任务
宏任务优先级
主代码块 > setImmediate > MessageChannel > setTimeout / setInterval
微任务优先级
微任务microtask:process.nextTick > Promise = MutationObserver
setTimeout
console.log("script start");
setTimeout(function () {
console.log('setTimeout')
}, 0);
console.log('script end');
输出:script start--