gpt4 book ai didi

javascript - 如何正确使用setTimeout或setInterval

转载 作者:行者123 更新时间:2023-12-03 09:15:41 24 4
gpt4 key购买 nike

我正在使用谷歌地图,并且我正在尝试暂停执行以防止 QUERY_LIMIT 使用问题。我绘制地址的函数如下所示。

代码可以工作,但是我想尝试 setTimeout 或 setInterval 看看它在 UI 上是否看起来更好。

我该如何调用它,第一个参数应该是什么?

非常感谢。

  vLocations = [];

for (var i = 0; i < vAddresses.length; i++) {

//pause to prevent OVER_QUERY_LIMIT issue
//geocode "free" usage limit is 5 requests per second
//setTimeout(PlotAddressesAsUnAssigned, 1000);
//sleep(500);

//this will resolve the address and store it in vLocations
AddWaypointAndUnassigned(vAddresses[i]);

var z = i % 4;
if (z==0 && i != 0) {
//sleep after every 5th geocode call
//alert('going to sleep...i: ' + i);
//sleep(3000);
}

}

最佳答案

在循环(同步)内进行暂停(异步执行)通常会导致很多麻烦。

您可以使用仅在超时结束时执行的递归调用。

var vLocations = [];

// Manages the timeout and recursive calls
function AddWaypointAndUnassignedWithPause(index){
setTimeout(function(){
// When the timeout expires, we process the data, and start the next timeout
AddWaypointAndUnassigned(vAddresses[index]);

// Some other code you want to execute
var z = i % 4;
if (z==0 && i != 0) {
//sleep after every 5th geocode call
//alert('going to sleep...i: ' + i);
//sleep(3000);
}

if(index < vAddresses.length-1)
AddWaypointAndUnassignedWithPause(++index);
}, 1000);
}

// Start the loop
AddWaypointAndUnassignedWithPause(0);

JSFiddle example.

关于javascript - 如何正确使用setTimeout或setInterval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31958529/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com