为了账号安全,请及时绑定邮箱和手机立即绑定

ajax循环调用问题,很着急,求前辈看看

ajax循环调用问题,很着急,求前辈看看

开满天机 2019-05-21 10:10:35
我需要获取每个月的统计数据,然后统计云返回的是每天的。所以我分别传参12个月的时间过去。调用12次,得到每个月的总数count。每次得到的值都赋值给一个数组month。这个数组保存12个月的总数。但是因为是异步请求,所以我在外面取不到数组里面变量。我给ajax加上async以后,页面会很慢加载。varmonth=[];getAppStatisticDataById(0,'2018-1-1','2018-1-31')getAppStatisticDataById(1,'2018-2-1','2018-2-28')getAppStatisticDataById(2,'2018-3-1','2018-3-31')getAppStatisticDataById(3,'2018-4-1','2018-1-30')getAppStatisticDataById(4,'2018-5-1','2018-1-31')getAppStatisticDataById(5,'2018-6-1','2018-1-30')getAppStatisticDataById(6,'2018-7-1','2018-1-31')getAppStatisticDataById(7,'2018-8-1','2018-1-31')getAppStatisticDataById(8,'2018-9-1','2018-1-30')getAppStatisticDataById(9,'2018-10-1','2018-1-31')getAppStatisticDataById(10,'2018-11-1','2018-1-30')getAppStatisticDataById(11,'2018-12-1','2018-1-31')functiongetAppStatisticDataById(index,start,end){$.ajax({url:'https://r.apicloud.com/analytics/getAppStatisticDataById',type:'post',timeout:10000,//超时时间10秒async:false,headers:{'X-APICloud-AppId':'xxxxxxxxx','X-APICloud-AppKey':varappKey,},dataType:"json",data:{startDate:start,endDate:end},success:function(data){if(data.st==1){varcount=0;for(leti=0;i
查看完整描述

2 回答

?
心有法竹

TA贡献1866条经验 获得超5个赞

可以使用Promise.all,如果不支持ES6,可以模拟Promise.all
functionallAjax(arr,callback){
varcount=0,month=[];
arr.map(function(item,i){
$.ajax({
...
success:function(data){
month.push({
month:item,
data:data
})
},
complete:function(){
count++;
if(count==arr.length){
callback&&callback(month)
}
}
})
})
}
vararr=[1,2,3]
allAjax(arr,function(month){
console.log(month)
})
                            
查看完整回答
反对 回复 2019-05-21
  • 2 回答
  • 0 关注
  • 387 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信