Hug*_*lpz 2 javascript jquery for-loop delay google-maps-api-3
我的项目调用了具有速度限制的Google Map API.所以我的for循环必须放慢速度.
我有以下for循环JS代码:
// Iterate Data and create markers
for (var i in Data) {
address = Data[i].address;
tag = Data[i].tag
placeAddressOnMap(address, tag);
i = i + 1 ;
}
Run Code Online (Sandbox Code Playgroud)
我该如何处理以减慢现有的for循环?
我尝试了以下JS代码,但不起作用:
// Iterate Data and create markers
for (var i in Data) {
address = Data[i].address;
tag = Data[i].tag
placeAddressOnMap(address, tag);
i = i + 1 ;
setTimeout(function () { i = i }, 2000); // failing delay using setTimeout(function () { }, 2000);
}
Run Code Online (Sandbox Code Playgroud)
我相信你想设置一个间隔,我没有你的完整代码,但在这个行之间的一些东西:
var timesRun = -1;
var interval = setInterval(function(){
timesRun += 1;
if(timesRun == Data.length){
clearInterval(interval);
}
address = Data[i].address;
tag = Data[i].tag
placeAddressOnMap(address, tag);
}, 2000);
Run Code Online (Sandbox Code Playgroud)
重要的小演示: 演示
你的代码不起作用的原因是因为for循环继续.因为setTimeout是异步的.假设for循环的迭代需要1毫秒(仅作为示例).setTimeout中的代码将在0,2001,2002,2003,2004毫秒等时触发..不是0,2000,4000等.
| 归档时间: |
|
| 查看次数: |
320 次 |
| 最近记录: |