我的服务方法如下所示。
module.service('Service', function($state, $rootScope) {
var getRemoteItems = function(page, displayLimit) {
var defferer = $q.defer()
var query = new Parse.Query("Item");
query.limit(displayLimit);
query.skip(page * displayLimit);
query.descending("createdAt");
var items = [];
query.find({
success: function(results) {
//process results
return results;
},
error: function(e) {
return null;
}
});
}
}
虽然它正在运行,但我正在尝试进行更改,以便在调用此方法的控制器中,可以使用成功和失败检查,而不是在服务方法中执行此操作。
在这个例子中,我无法理解如何使用promises。我期待下面的事情。
Service.getRemotItems(1,10).then()...error()..
请原谅我在示例中的任何语法问题,因为我是Angular的新手。
答案 0 :(得分:0)
您已经使用$q.defer()
创建了承诺,您只需在成功和解决方案中解决/拒绝承诺错误回调
module.service('Service', function($state, $rootScope, $q) {
var getRemoteItems = function(page, displayLimit) {
var deferred = $q.defer();
var query = new Parse.Query("Item");
query.limit(displayLimit);
query.skip(page * displayLimit);
query.descending("createdAt");
var items = [];
query.find({
success: function(results) {
deferred.resolve(results);
},
error: function(e) {
deferred.reject(e);
}
});
return deferred.promise;
}
}