赞
踩
一个数据库中共157条数据,每个数据需要调用一个API函数。将这个处理逻辑中写在一个for循环里,此时console报错提示超过每秒最多5个的限制。(好嘛,我&?》“:%&#¥@)
1.用队列缓冲,网上应该很多,但是没成功
2. 这篇看起来很强的样子但是没看懂:js限制promise并发
一秒最多5个请求,一个请求就是200ms,那么设置每隔一段时间执行一次就可以了。
设置的Interval为210ms时获取全部数据约需要3min,设置为0.0001-1时约需1min30s;
不是很能理解,为啥0.0001-1的时间差不多。。。。。
that.data.inter = setInterval( function(){ //设置读取的信息条数,到限制后就结束循环任务 if(index == all.length - 2){ clearInterval(that.data.inter) } console.log("=====",index) //每执行一次下标+1 index = index + 1 qqmapsdk.geocoder({ //获取表单传入地址 address: all[index].adderess, //地址参数,例:固定地址,address: '北京市海淀区彩和坊路海淀西大街74号' success: function (decodedData) { //成功后的回调 console.log(decodedData); var res = decodedData.result; var latitude = res.location.lat; var longitude = res.location.lng; var tmpData = { id: all[index].riskLevel, latitude: latitude, longitude: longitude, iconPath: "../../static/light.png", //换图标 width: 100, //改大小 height: 100 } markers.push(tmpData) }, fail: function (error) { console.error(error); }, complete: function (res) { console.log(res); } }) },0.0001 )
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。