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

发布于 2022-09-06 06:35:57 字数 783 浏览 59 评论 0

最近在学 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()

图如下:
图片描述

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

凉风有信 2022-09-13 06:35:57

用try catch

怪我闹别瞎闹 2022-09-13 06:35:57

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

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()
七色彩虹 2022-09-13 06:35:57

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文