for(var j=0;j<records.length;j++){
var record=records[j];
collClickRemoteAssist(record);
}
就是每一次for,睡眠3秒后,然后执行方法( collClickRemoteAssist(record);)
继续循环一次,睡眠3秒,执行方法。。。。。
------------------------------------以下是setTimeout方法测试-------不可取--------------
setTimeout( function(){
collClickSecond(record);
},3000 );
要是使用setTimeout方法,程序会睡眠3秒后一次执行完循环,等于延迟了3秒。
怎么解决?????????
function sleep(ms) { var starttime = new Date().getTime(); do { } while ((new Date().getTime() - starttime) < ms) }
這是段仿sleep的function,應該可以解決你的問題
但這並不是個好的使用方式..
这个不行,这个计算机会死机的
楼上的是对的。
for(var i = 0 ; i < 5 ; i++){
setTimeout(function(){
console.log(1);
},i*3000);
}
const SLEEP_MILLISECONDS = 1000 * 3; for (var j = 0; j < records.length; j++) { var record = records[j]; (function(record) { setTimeout(function() { collClickRemoteAssist(record); }, j * SLEEP_MILLISECONDS); })(record); }
正经思路就是timeout递归.
4楼的也是可以的.