我需要获取每个月的统计数据,然后统计云返回的是每天的。所以我分别传参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.allfunctionallAjax(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)})
添加回答
举报
0/150
提交
取消