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秒。
怎么解决?????????
6 回答
慕村225694
TA贡献1880条经验 获得超4个赞
function sleep(ms) { var starttime = new Date().getTime(); do { } while ((new Date().getTime() - starttime) < ms) }
這是段仿sleep的function,應該可以解決你的問題
但這並不是個好的使用方式..
温温酱
TA贡献1752条经验 获得超4个赞
for(var i = 0 ; i < 5 ; i++){
setTimeout(function(){
console.log(1);
},i*3000);
}
万千封印
TA贡献1891条经验 获得超3个赞
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); }
添加回答
举报
0/150
提交
取消