【问题标题】:Rejecting error after opening `.catch`打开`.catch`后拒绝错误
【发布时间】:2017-08-15 14:34:09
【问题描述】:

这两个代码块是一样的吗?我正在寻找打开.catch() 并记录错误,但我仍然希望错误“未被捕获”,我可以返回它吗?还是需要用Promise.reject() 包裹?

A区:

soSomething()
    .then(() => {
        return "meow"
    })
    .catch(() => {
        console.log(err)
        return err
    })

B座:

soSomething()
    .then(() => {
        return "meow"
    })
    .catch(() => {
        console.log(err)
        return Promise.reject(err)
    })

【问题讨论】:

    标签: javascript error-handling promise


    【解决方案1】:

    这两种模式不一样。

    第一个处理错误并返回解析的Promise,到达链接.then() 处的第一个函数参数。

    第二个示例返回一个被拒绝的Promise,到达链式.then().catch() 处的第二个函数参数。

    我希望打开 .catch() 并记录错误,但我仍然想要 错误是“未捕获”,我可以返回它吗?

    第一个模式应该满足要求。

    【讨论】:

    • 虽然请注意,err 在这两个示例中都没有定义
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-26
    • 1970-01-01
    • 2020-12-25
    • 2016-09-04
    • 2014-01-02
    • 2019-07-07
    相关资源
    最近更新 更多