Mon*_*key 4 angularjs angular-promise
我有一个角度服务,包装我的其余api调用并返回$ http承诺.
我的问题是如何抛出一个错误,以便调用触发.error方法的promise?我不想抛出错误,因为我希望它在调用函数中使用.success/.error而不是在它周围执行try catch块.
myFunction: function(foo)
if (foo) {
return $http.put(rootUrl + '/bar', {foo: foo});
}
else {
//what do I return here to trigger the .error promise in the calling function
}
Run Code Online (Sandbox Code Playgroud)
你不需要$q.defer().和else太.您可以直接使用拒绝:
myFunction: function(foo) {
if (foo) {
return $http.put(rootUrl + '/bar', {foo: foo});
}
return $q.reject("reject reason");
}
Run Code Online (Sandbox Code Playgroud)
请参阅https://docs.angularjs.org/api/ng/service/ $ q #deput
首先在您的服务中注入 $q-service 。然后在你的其他中:
else {
var deferred = $q.defer();
deferred.reject("reject reason, foo was false");
return deferred.promise;
}
Run Code Online (Sandbox Code Playgroud)
不像 Blazemonger 那样聪明,但很快就能做到。
| 归档时间: |
|
| 查看次数: |
7285 次 |
| 最近记录: |