我在我的應用程序有一個小問題。我想獲取並返回匿名函數外的數據數組。我使用承諾,瞄準我的問題是當我嘗試我的服務時,它返回一個隨機數組長度隨機。獲取數據承諾angularJS
我不知道這個問題,我不知道我是否使用了諾言。
getCurrentExchangeTo : function(year, month, country){
var def = $q.defer();
var numberDayPerMonth = [
31,
9,
31,
30,
31,
30,
31,
30,
31,
30,
31,
30,
];
var vm = this;
this.country = country;
this.getCurrentExchangeFor = [];
var hello = "gello"
for(var i = 0; i < numberDayPerMonth.length; i++){
if((i + 1) === month){
for(let j = 1; j < numberDayPerMonth[i]; j++){
$http.get('http://api.fixer.io/2000-02-0' + j + '?symbols=USD').then(function (success) {
let countryDay = vm.country
vm.getCurrentExchangeFor[j] = success.data.rates[countryDay];
def.resolve(getCurrentExchangeFor)
});
}
}
}
return def.promise
}
和
getCurrentExchangeService.getCurrentExchangeTo(2015, 2, 'USD').then(function (data) {
console.log(data)
});
JavaScript是異步..當u調用循環繼續,並保持調用API的API。每次通話在不同的時間返回..所以你得到隨機數字... – ziaulain
這個權利..但你有一個想法的結果我的問題?? – simonmnt
您的退貨聲明應出現在您的循環中的解決說明之後。 –