function f2() {
try {
Promise.reject('出错了');
} catch(e) {
console.log(e)
}
}
- 执行
f2()
,无法通过try/catch捕获promise.reject,控制台抛出Uncaught (in promise)
async function f() {
try {
await Promise.reject('出错了')
} catch(e) {
console.log(e)
}
}
- 为什么改成await/async后,执行
f()
就能在catch中捕获到错误了,并不会抛出Uncaught (in promise)
这样应该就理解了吧,
拒绝发生在未来回调只会在未来的事件循环中执行。