请参阅下面的示例,其中方法将返回承诺并相应地解决/拒绝该承诺。我现在对处理它的决心不感兴趣,我只想处理拒绝问题。
有没有更好的,跨浏览器的方式来做到这一点而不宣称无用的成功功能?
MyClass.method().then((sData) => {
// Nothing to do here
}, (eData) => {
// Important code to run here
})
在我的代码中,我使用了AngularJS承诺。但是,该问题与其他常见库和本机Promise对象相关。
答案 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
答案 3 :(得分:2)
您可以使用Promise的.catch
方法。
MyClass.method().catch(error => {
// handle the error here
});