打开`.catch`后拒绝错误

时间:2017-08-15 14:34:10

标签: javascript error-handling promise

这两个代码块是否相同?我打算打开.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)
    })

1 个答案:

答案 0 :(得分:3)

两种模式不一样。

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

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

  

我打算打开{{1}}并记录错误,但我仍然想要   错误是"未被捕获",我可以退回吗?

第一种模式应符合要求。