async和await中的try...catch

2021-11-25  本文已影响0人  前端老邹_伯通

1.Promise对象 用来执行 业务函数

function hmtest() {
    new Promise(function (resolve, reject) {
        // 1.执行成功回调函数------------
        // resolve('大王,你快来抓我呀~!')

        // 2.执行失败(异常)回调函数------
        // reject('死鬼')
        // throw new Error('死鬼!'); // 手动抛出异常
        JSON.parse('asdfasdfasdf') // 自动抛出异常
    }).then((res1) => {
        console.log('res1->', res1)
    }).catch((e) => {
        console.log('---------------------------')
        console.log('出错啦:')
        console.dir(e)
        console.log('---------------------------')
    })
}

2.Promise对象 结合 async/await 关键字

async function hmtest1() {
    // a.调用
    const res = await new Promise(function (resolve, reject) {
        // 1.执行成功回调函数------------
        // resolve('大王,你快来抓我呀~!')

        // 2.执行失败(异常)回调函数------
        // reject('失败了~~!')
        throw new Error('死鬼!');
    }).catch((e) => {
        console.log('---------------------------')
        console.log('出错啦:')
        console.dir(e)
        console.log('---------------------------')
    })

    // b.打印结果
    console.log('res->', res)

}
}

hmtest2()

3.Promise对象 结合 async/await + try...catch... 代码块

async function hmtest2() {
    try {
        const res = await new Promise(function (resolve, reject) {
            // 1.执行成功回调函数------------
            // resolve('大王,你快来抓我呀~!')

            // 2.执行失败(异常)回调函数------
            // reject('讨厌!')
            throw new Error('死鬼!');
        })
        // 打印结果
        console.log(res)
    } catch (e) {
        console.log('---------------------------')
        console.log('出错啦:')
        console.dir(e)
        console.log('---------------------------')
    }
}
上一篇下一篇

猜你喜欢

热点阅读