try/catch无法捕获promise.reject的问题
function f2() {
try {
Promise.reject('出错了');
} catch(e) {
console.log(e)
}
}
f2() //Uncaught (in promise)
原因是try 里面不能写异步代码
解决
1.用async aweit
async function f() {
try {
await Promise.reject('出错了')
} catch(e) {
console.log(e)
}
}
f() // 出错了
2 promise.catch()
function f2() {
try {
Promise.reject('出错了').catch(err => {
console.log('2', err)
});
console.log('1')
} catch (e) {
console.log(e)
}
}
f2()