一道同步異步問題引發的思考

async function async1() {
    console.log('async1 start')
    await async2()
    console.log('async1 end')
}
async function async2() {
    console.log('async2')
}
console.log('script start')
setTimeout(function () {
    console.log('settimeout')
})
async1()
new Promise(function (resolve) {
    console.log('promise1')
    resolve()
}).then(function () {
    console.log('promise2')
})
console.log('script end')
在Chrome下

 

script start

async1 start

async2

promise1

script end

async1 end

promise2

settimeout

 

在chromium 下 

 

script start

async1 start

async2

promise1

script end

async1 end

promise2

settimeout

 

這其中promise2 和 async1 end 的執行順序是相反的,爲什麼?

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章