try catch

try catch只能捕获同步的错误

try{
    new Promise((res, rej) => {
        throw new Error('false')
    })
} catch (err) {
    console.log(err);
}

不过结合await使用是可以的 await相当于变为假同步了吧 我这样理解的

const fetchFailure = () => new Promise((resolve, reject) => {
    setTimeout(() => { // 模拟请求
        reject('fetch failure...')
    })
})
async function main () {
    try {
        const res = await fetchFailure()
        console.log(res, 'res')
    } catch(e) {
        console.log(e, 'e.message')
    }
}
main()

转自别人博客:https://wsydxiangwang.github.io/web/Async/6.html

你可能感兴趣的:(try catch)