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)