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

Javascript 仅处理承诺错误的正确方法是什么?,javascript,promise,Javascript,Promise,请参见下面的示例,其中方法将返回一个承诺,并相应地解决/拒绝该承诺。我现在对处理它的决心不感兴趣,我只想处理拒绝 有没有更好的跨浏览器方式来实现这一点,而不必声明无用的成功功能 MyClass.method().then((sData) => { // Nothing to do here }, (eData) => { // Important code to run here }) 在我的代码中,我使用AngularJS承诺。但是,这个问题与其他公共

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

有没有更好的跨浏览器方式来实现这一点,而不必声明无用的成功功能

  MyClass.method().then((sData) => {
    // Nothing to do here
  }, (eData) => {
    // Important code to run here
  })
在我的代码中,我使用AngularJS承诺。但是,这个问题与其他公共库和本机Promise对象有关。

是!您可以将此函数用于:

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

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

您可以使用Promise的
.catch
方法

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

请参阅以供参考:


其他答案状态使用
.catch
功能

MyClass.method()
  .catch(error => { error handling logic (async)})
我想补充的是:

通常,在
.then()
函数中,您会提供两个类似这样的回调(这些回调总是异步执行):

但是,
.catch()
then()
的缩写,其中successCallback用
null
填充

then(null, failureCallback)

我想没关系。我以前见过这种行为。你是说像吗?我以为他说的是
resolve
reject
但不是很好clear@DrNio是的,我不确定还有什么不清楚,我对问题做了一点修改,看看它现在是否更有意义。比较。抓住问题中的代码,似乎catch也会捕获未处理的异常,而reject函数不会捕获?@caiocpricci2——所以你不想这样?@caiocpricci2,承诺就是这样工作的。当调用
拒绝
或抛出错误时,承诺将被拒绝。
then(null, failureCallback)