只处理承诺错误的正确方法是什么?

时间:2018-04-11 10:31:06

标签: javascript promise

请参阅下面的示例,其中方法将返回承诺并相应地解决/拒绝该承诺。我现在对处理它的决心不感兴趣,我只想处理拒绝问题。

有没有更好的,跨浏览器的方式来做到这一点而不宣称无用的成功功能?

  MyClass.method().then((sData) => {
    // Nothing to do here
  }, (eData) => {
    // Important code to run here
  })

在我的代码中,我使用了AngularJS承诺。但是,该问题与其他常见库和本机Promise对象相关。

4 个答案:

答案 0 :(得分:5)

是的!您可以使用catch功能:

MyClass.method()
  .catch(error => { ... })

假设MyClass.method()返回有效的Promise API对象,catch应该能够捕获任何拒绝。

答案 1 :(得分:4)

正如其他答案所述,请使用.catch函数。

MyClass.method()
  .catch(error => { error handling logic (async)})

我想补充的内容如下:

通常在.then()函数中你提供2个这样的回调(这些回调总是异步执行):

const promise2 = doSomething().then(successCallback, failureCallback);

.catch()是使用then()填写successCallback的null的简写。

then(null, failureCallback)

答案 2 :(得分:3)

  

YourClass.method()。catch(error => {...})

参见参考资料: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise

Promise

答案 3 :(得分:2)

您可以使用Promise的.catch方法。

MyClass.method().catch(error => {
  // handle the error here
});