setTimeout(() => {
//执行后 回调一个宏事件
console.log('内层宏事件3')
}, 0)
console.log('外层宏事件1');
async function fun1() {
console.log("async1")
await fun2()
console.log("aysnc11")
}
async function fun2() {
console.log("async2")
await func3()
new Promise((resolve) => {
console.log('async2depromise');
resolve()
}).then(() => {
console.log('async2depromise微事件1');
}).then(()=>{
console.log('async2depromise微事件2')
})
}
function func3() {
console.log("fun3")
}
new Promise((resolve) => {
console.log('外层宏事件2');
resolve()
}).then(() => {
console.log('微事件1');
}).then(()=>{
console.log('微事件2')
})
fun1()
new Promise((resolve) => {
console.log('外层宏事件3');
resolve()
}).then(() => {
console.log('微事件3');
}).then(()=>{
console.log('微事件4')
})
-
执行顺序为:
外层宏事件1
外层宏事件2
async1
async2
fun3
外层宏事件3微事件1
async2depromise
微事件3微事件2
async2depromise微事件1
aysnc11
微事件4async2depromise微事件2
内层宏事件3