分析代码的执行顺序?
console.log(1)
async function fnOne() {
console.log(2)
await fnTwo() // 先执行右侧的代码fnTwo(), 然后等待执行完
console.log(3) //微任务排队等着
}
async function fnTwo() {
console.log(4)
}
fnOne()
setTimeout(() => {
console.log(5)
}, 2000) //宏任务排队等着
let p = new Promise((resolve, reject) => { // new Promise()里的函数体会马上执行所有代码
console.log(6)
resolve()
console.log(7)
})
setTimeout(() => {
console.log(8)
}, 0) //宏任务排队等着
p.then(() => {
console.log(9) //微任务d等着
})
console.log(10)
正确的打印顺序: 1 2 4 6 7 10 3 9 8 5