为了账号安全,请及时绑定邮箱和手机立即绑定

js 中的for循环 怎么每循环一次睡眠3秒???

js 中的for循环 怎么每循环一次睡眠3秒???

慕勒3428872 2018-12-06 11:51:04
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 回答

?
MM们

TA贡献1886条经验 获得超2个赞

var i = 0;

setInterval(function(){i++; console.log(records[i]);},3000);

查看完整回答
反对 回复 2018-12-24
?
慕村225694

TA贡献1880条经验 获得超4个赞

function sleep(ms) {
    var starttime = new Date().getTime();
    do {
    } while ((new Date().getTime() - starttime) < ms)
}

這是段仿sleep的function,應該可以解決你的問題

但這並不是個好的使用方式..

查看完整回答
反对 回复 2018-12-24
?
大话西游666

TA贡献1817条经验 获得超14个赞

这个不行,这个计算机会死机的

查看完整回答
反对 回复 2018-12-24
?
慕娘9325324

TA贡献1783条经验 获得超4个赞

楼上的是对的。

查看完整回答
反对 回复 2018-12-24
?
温温酱

TA贡献1752条经验 获得超4个赞

for(var i = 0 ; i < 5 ; i++){
  setTimeout(function(){
    console.log(1);
  },i*3000);
}

查看完整回答
反对 回复 2018-12-24
?
万千封印

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);
}

 

查看完整回答
反对 回复 2018-12-24
  • 6 回答
  • 0 关注
  • 915 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信