4 回答

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超8個(gè)贊
這樣應(yīng)該就理解了吧,拒絕發(fā)生在未來(lái)。
function f2() {
try {
Promise.reject('出錯(cuò)了').catch(err => {
console.log('2', err)
});
console.log('1')
} catch (e) {
console.log(e)
}
}

TA貢獻(xiàn)1846條經(jīng)驗(yàn) 獲得超7個(gè)贊
回答這個(gè)問(wèn)題,原理還是探究await到底執(zhí)行了什么操作?
await:表示暫停異步函數(shù)promise,等待任意表達(dá)式的執(zhí)行結(jié)果。
對(duì)于f2函數(shù),Promise.reject('出錯(cuò)了')異步執(zhí)行,但是沒(méi)有catch函數(shù)進(jìn)行reject處理。
對(duì)于f函數(shù),await Promise.reject('出錯(cuò)了')。相當(dāng)于在后面加一個(gè)catch處理方法,方法返回傳入的‘出錯(cuò)了’信息,所以不會(huì)報(bào)錯(cuò)。
添加回答
舉報(bào)