Javascript-在循环中每x次迭代执行一次
我正在使用GoogleMapsAPI,它限制每秒10个请求。我希望每10个请求都有一个短暂的延迟Javascript-在循环中每x次迭代执行一次,javascript,arrays,google-maps,for-loop,Javascript,Arrays,Google Maps,For Loop,我正在使用GoogleMapsAPI,它限制每秒10个请求。我希望每10个请求都有一个短暂的延迟 for (var i = 0; i < myRequests.length; i++) { // pause every 10 iterations } for(var i=0;i
for (var i = 0; i < myRequests.length; i++) {
// pause every 10 iterations
}
for(var i=0;i
我的数学不好。。。我如何知道何时我达到10次迭代以完成某项任务?(函数循环(z)){
(function loop(z) {
for (var i = 0; i < 10; i++) {
//use myRequests[z]
console.log(myRequests[z]);
z++;
if(z===myRequests.length)
return;
}
setTimeout(function(){loop(z)},1000);
})(0);
对于(变量i=0;i<10;i++){
//使用myRequests[z]
log(myRequests[z]);
z++;
if(z==myRequests.length)
返回;
}
setTimeout(函数(){loop(z)},1000);
})(0);
(函数循环(z){
对于(变量i=0;i<10;i++){
//使用myRequests[z]
log(myRequests[z]);
z++;
if(z==myRequests.length)
返回;
}
setTimeout(函数(){loop(z)},1000);
})(0);
创建一个存储请求的数组,并使用该数组:
var index = -1;
for(var i=0; i<anArray.length; i++){
if(anArray[i]!=false){
index = i;
break;
}
}
if(index!=-1){
function makeCall(){
//api calls
anArray[index] = true;
}
}else{
setTimeout(makeCall, 1000)
}
var指数=-1;
对于(var i=0;i创建一个存储请求的数组,并使用该数组:
var index = -1;
for(var i=0; i<anArray.length; i++){
if(anArray[i]!=false){
index = i;
break;
}
}
if(index!=-1){
function makeCall(){
//api calls
anArray[index] = true;
}
}else{
setTimeout(makeCall, 1000)
}
var指数=-1;
for(var i=0;iLops不能等待
“等待”的唯一方法是使用超时,不幸的是,在这种情况下,超时是异步的,因此它们在循环中是无用的,因为循环无论如何都会继续
相反,您需要使用递归函数
数学部分
我们可以通过使用模运算符(%
)来保存一组逻辑,以获得当前递增计数的剩余部分除以要等待的拆分。如果剩余部分为0(当前计数是拆分的倍数),请等待请求的时间
例子
函数日志(out){document.body.innerHTML+=out;}
函数重复(计数、分割、限制、等待){
var args=参数;
如果(++count循环不能等待
“等待”的唯一方法是使用超时,不幸的是,在这种情况下,超时是异步的,因此它们在循环中是无用的,因为循环无论如何都会继续
相反,您需要使用递归函数
数学部分
我们可以通过使用模运算符(%
)来保存一组逻辑,以获得当前递增计数的剩余部分除以要等待的拆分。如果剩余部分为0(当前计数是拆分的倍数),请等待请求的时间
例子
函数日志(out){document.body.innerHTML+=out;}
函数重复(计数、分割、限制、等待){
var args=参数;
如果(++count非常有趣的方法!这会使用大量CPU资源还是冻结其他javascript?这取决于您在循环中使用的代码。如果您的代码进行一些异步调用,我认为您不会注意到UI端的任何内容。非常有趣的方法!这会使用大量CPU资源还是冻结其他javascript?这取决于如果你的代码进行了一些异步调用,我认为你不会注意到UI端的任何东西。