async/await中的promise返回错误reject的一个小疑问

最近在学 node ,之前对 async/awaitpromise 略懂,但不是很熟悉,大家都知道,
promise 返回的 resolve 对象可能用 await 去接,最近在写代码的时候,突发奇想,既然 resolve 的代码 await 接收的到,那 reject 的呢,我觉得可能接收不到,随之我就试验了一下,果不其然,报错了,哈哈哈,那么疑问就随之而来了,那万一碰到 reject 的情况怎么办,岂不是很蛋疼,望大佬们多多指教一下, thank you ~

国际惯例,贴个代码,贴个报错图吧

let pro = function () {
    return new Promise((resolve, reject) => {
        reject('err')
    })
}

let sync = async function(){
    let awaitResult = await pro()
    console.log(awaitResult)
}
 
sync()

图如下:
图片描述

阅读 13.7k
3 个回答

用try catch

嗯,大概是这样。别怪我挖坟,只是提醒一下萌新。

let awaitResult = await pro().catch(function(err){
       console.log(err);
    })

完整代码

let pro = function () {
    return new Promise((resolve, reject) => {
        reject('err')
    })
}

let sync = async function(){
    let awaitResult = await pro().catch(function(err){
       console.log(err);
    })
    console.log(awaitResult)
}
 
sync()
新手上路,请多包涵

楼上的方法可以解决该问题,但不知道是不是最完美的方案.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题