每循环一次for, 睡眠3秒后,然后执行方法( collClickRemoteAssist(record);)
继续循环一次,睡眠3秒,执行方法。。。。。
------------------------------------以下是setTimeout方法测试-------不可取--------------
setTimeout( function(){
collClickSecond(record);
},3000 );
要是使用setTimeout方法,程序会睡眠3秒后一次执行完循环,等于延迟了3秒。
怎么解决?????????
<script>
var arr2=['a','b','c'];
function intervalFor(time,arr){
var index=0;
setTimeout(function(){
console.log(arr[index]);
index++;
if(index<arr.length){
setTimeout(arguments.callee,time);
}else{
console.log('循环结束');
}
},time);
}
intervalFor(3000,arr2);
</script>
var start = new Date().getTime();
while(true) {
if(
new Date().getTime()-start > 1000*3
) break;}
你可以这样,在你的每个for循环都加上这个。 原理就是时间差3S
http://blog.csdn.net/w172087242/article/details/51261852
如果有帮助,希望采纳
不能用for,用setTimeout递归执行。。
<div id="dv"></div>
<script>
var arr = [1, 2, 3, 4, 5];
function delayEachArray(delay, arr, index) {
if (index == undefined) index = 0;
document.getElementById('dv').innerHTML+=arr[index]+'<br>';
index++;
if (index < arr.length) setTimeout(function () { delayEachArray(delay, arr, index); }, delay);
else document.getElementById('dv').innerHTML += '数组遍历结束<br>';
}
delayEachArray(3000, arr);
</script>
赞同 danielinbiti 的方法,只是我在想有没有更好的方法,更优雅的写法;
我的睡眠3S有问题?请那个踩的人出来解释解释!
借danielinbiti代码一用:
var arr2=['a','b','c']; function intervalFor(time,arr){ var index=0; setTimeout()每隔几秒执行一次 相对应的有clearInterval(对象) 结束掉某个循环 setTimeout(function(){ console.log(arr[index]); index++; if(index<arr.length){ setTimeout(arguments.callee,time); }else{ console.log('循环结束'); } },time); } intervalFor(3000,arr2);