我打電話以下服務響應: 獲取賬戶信息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