我打电话以下服务响应: 获取账户信息AngularJS服务复制在控制器
在我的控制器第一段代码:
//resp is coming from an $http sync request, above the below request.
for (var i = 0; i < resp.rows; ++i) {
userService.getAccountsBalance($rootScope.userid, resp[i]['Acct_Number']).then(function(data){
console.log(data.bal) // shows two duplicate balances
});
}
在我的服务:
app.service('userService', function($rootScope, $q){
var deferred = $q.defer();
this.getAccountsBalance = function(userid, accountNum){
console.log(userid + " " + accountNum)
var req = <my $http request>
req.send().then(function(resp){
deferred.resolve(resp.responseJSON);
});
console.log(deferred.promise) //// prints two balances JSON objects with no duplicate
return deferred.promise;
}
});
我的问题是,我可以看到在我的服务中执行了两个请求(使用不同的参数),并为两个帐户返回两个不同的余额。但是,在我的控制器中,我得到了两个重复结果。我只得到两次最后的回应。
我很确定它与承诺有关,而且我还是新手。
谢谢,但我m在控制器中执行循环,控制器调用服务功能两次。 – Sobiaholic