鍍金池/ 問答/HTML/ 為什么await后面的代碼不執(zhí)行了?

為什么await后面的代碼不執(zhí)行了?

function asyncPrint (message) {
    console.log(message)
}

function pro (message, miniSecond) {
    return new Promise((resolve, reject) => {
        setTimeout(asyncPrint, miniSecond, message)
    })
}

async function result() {
    console.log('before')
    await pro('printMMEE', 1000)
    console.log('after')
    console.log('sync code')
}

result()

請(qǐng)問為什么這兩行代碼在await之后就不執(zhí)行了呢?

console.log('after')
console.log('sync code')
回答
編輯回答
不討喜

代碼應(yīng)該這么寫:

function asyncPrint (message) {
    console.log(message)
}

function pro (message, miniSecond) {
    return new Promise((resolve, reject) => {
        // 注意下面的代碼
        setTimeout(() => {
             asyncPrint(message);
             resolve(message)
        }, miniSecond)
    })
}

async function result() {
    console.log('before')
    await pro('printMMEE', 1000)
    console.log('after')
    console.log('sync code')
}
2017年7月28日 12:14
編輯回答
舊時(shí)光

嗯,樓上各位已經(jīng)說得很明白了。
下筆之前,還請(qǐng)通讀文檔,必定事半功倍。

2017年5月4日 14:11
編輯回答
我以為

因?yàn)槟愕?code>promise一直沒有resolve

2017年5月2日 11:44
編輯回答
遺莣

把promise搞清楚再來寫await async

2018年2月6日 20:14