優先級是調用棧 > 微任務 > 消息隊列
// 調用棧
function func() {
console.log("func");
}
// 消息隊列
setTimeout(() => {
console.log("setTimeout");
}, 0)
var p = new Promise((resolve, reject) => {
console.log("Promise");
resolve()
})
// 微任務
p.then(() => {
console.log("then");
})
func()
/**
* 執行結果
Promise
func
then
setTimeout
*/
參考
2分鐘了解 JavaScript Event Loop | 面試必備