我有一个简单的工厂,可以在异步请求后返回承诺。
getUpdates: function(){
var q = $q.defer();
$http.get(...)
.success(function(data, status, headers, config) {
q.resolve(data);
})
.error(function(data, status, headers, config) {
q.reject(status);
});
return q.promise;
}
在我的控制器中,我只调用getUpdates方法并收到诺言。
var updates = factory.getUpdates();
如何提供getUpdates方法的成功/错误功能?
factory.getUpdates().success(function(promise){...}).error(function(err)...
我必须在getUpdates函数中添加什么?
最佳答案
$http
服务已经返回了一个承诺,在这种情况下,无需使用$q.defer()
创建另一个承诺。您可以这样写:
getUpdates: function () {
return $http.get(...);
}
这样,
success()
和error()
方法仍然可用。或者,如果您确实有理由使用
$q.defer()
,请在问题中包括它。关于javascript - AngularJS提供工厂方法的成功回调,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24992036/