// 微任务:4 5
// 宏任务:6(20ms) 10(20ms) 7 11
// 同步:3 9 2 1(5之后) 8
// 执行顺序:3 9 2 8 4 5 1 7 11 6 10
setTimeout(function () {
console.log(6)
}, 20)
new Promise((resolve, reject) => {
console.log(3)
resolve()
}).then(() => {
console.log(4)
setTimeout(() => {
console.log(10)
}, 20)
})
console.log(9)
function ff2() {
return new Promise((resolve, reject) => {
console.log(2)
resolve()
}).then(data => {
console.log(5)
})
}
async function ff1() {
await ff2()
console.log(1)
}
ff1()
setTimeout(function () {
console.log(7)
setTimeout(() => {
console.log(11)
})
})
console.log(8)