我在Angular工作,当在.success()中解析结果时,我需要在链中进一步表示一个错误。
我在我的服务中调用了一个函数,比如
myService.myFunction().then(
function(results){
// do success stuff
},
function(err){
// do failure stuff
});
myFunction就像
myFunction(){
return $http.get('url')
.success(function(results){})
.error(function(err){})
}
基于某些条件,我需要让.then()执行errorCallback,即使触发了$ http.get()。success()。如何让它看起来像$ http收到错误?
答案 0 :(得分:4)
要实现此目的,您需要执行的一些修复是使用then
上的success
代替$http
功能。
在then
成功回调中,您可以执行return $q.reject(errorData)
拒绝链中的承诺。
return $http.get('url').then(function(results){
if(condition) {
return $q.reject(errorData);
}
return result.data; //then callback get a object with properties
},function(error) {
return $q.reject(error);
})
success
返回原始$http
承诺,而then
返回使用成功和错误回调的返回值解析的承诺。