在Angular 1.6.x中,我可能有几个承诺调用,涉及例如对话框显示,使用$resource
的HTTP调用以及一些处理:
showDialog()
.then(foo => {
return sendDataToServer(foo); //uses $resource
})
.then(bar => {
processData(bar);
})
.catch(error) {
//TODO handle problems here
});
如果取消对话框(使用Angular Material),error
将为undefined
。我可以处理。
$resource
的{{3}}说:
失败时,承诺将被documentation对象拒绝....
那我怎么知道error
是否是HTTP响应呢?我是否将它与$http
的注入单例实例进行比较?我可以使用instanceof
吗?
基本上我想做某些事情,如果有HTTP错误,但其他事情,如果有一个处理错误。例如,我可能想记录HTTP数据:
.catch(error) {
$log.error("FooBar Error", angular.toJson(error.data));
});
当然,我可以检查是否有error.data
属性,但这似乎有点间接,但仍然没有告诉我错误是否真的是HTTP响应。 (也许这是一个例外,额外的data
意味着完全不同的东西。)