[英]reject promise when returning $http from service
我知道我可以這樣做:
angular.module('app.services').service('Resources', function ($q) {
this.ProductData = function() {
var deferred = $q.defer();
$http.get(url)
.then(function(result) {
deferred.resolve(result);
}, function() {
defered.reject("error");
});
return deferred.promise;
}
});
但是我可以避免創建延遲的obj,但仍然能夠解析和拒絕嗎?
angular.module('app.services').service('Resources', function () {
this.ProductData = function() {
return $http.get(url)
.then(function (result) {
// how would I do 'deferred.resolve or deferred.reject' here?
}, function () {
// how would I do 'deferred.reject' here?
});
}
});
您應該避免為$http
創建deferred
承諾和另一個保證。
如果在實際的$http
調用成功后需要拒絕承諾,則需要返回$q.reject()
:
return $http.get(url)
.then(function(result){
if (result.data.length === 0) return $q.reject("error");
return result;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.