js 中的for循环 怎么睡眠几秒?就是循环1次睡眠3秒?

 我来答
远望曾经
推荐于2017-09-07 · TA获得超过123个赞
知道答主
回答量:69
采纳率:100%
帮助的人:50.3万
展开全部

在js中,是没有睡眠这个概率的。

因为js语句是自上而下执行的,这样语句一触发,就会接着往小执行其他的代码,不会等着语句执行完毕。
所有,你这里需要的这个"睡眠",就算存在,那也只是延迟了for循环里面的代码的"执行",并不会延迟for本身的执行,我这里说的"延迟了for循环里面的代码的执行",是for循环内部的语句,一次性执行for所循环的次数次(这里可能有点难明白,比如for执行10次,延迟3秒,那for里面的代码会在延迟3秒后,一次性执行10次)。
如果要达到这个要求,就需要模拟"睡眠",使用定时器(setInterval)或者延时器(setTimeout):

//lst:需要循环的集合,timer:需要延迟的时间(单位:S)
function for_Interva(lst,timer){
    var index=0;
    var Intertimer=setInterval(function(){
        //操作集合中第lst[index]个;
        //集合小标+1;
        index+=1;
        //判断index是否达到集合最后一个
        if(index>=lst.length){
        //如果达到了,就清除定时器,停止循环
          clearInterval(Intertimer);
        }
    },timer);
}
function for_ITimeout(lst,timer){
       var index=0;
       function timeoutfor(){
           //操作集合中第lst[index]个;
            //集合小标+1;
            index+=1;
            //判断index是否达到集合最后一个
            if(index<lst.length){
            //没有达标,就继续循环。达标后,不会进入此if
                Timeout(function(){
                    timeoutfor();
                },timer);
            }
       }
    Timeout(function(){
            timeoutfor();
    },timer);
}
更多追问追答
追问

如何写成以下这样,for里面的代码会在延迟3秒后,一次性执行10次。

setTimeout( function(){

collClickSecond(record);

 },3000 );

你看我下面的循环中方法怎么使用你说的方法???谢谢了!!

我要的结果就是循环一次睡眠3秒,然后调用方法一次,以此类推。

你说的方法我怎么嵌套
sunny唯爱静521
2017-09-06 · TA获得超过216个赞
知道小有建树答主
回答量:196
采纳率:66%
帮助的人:44万
展开全部

最近也在查这个问题,查了半天没有查到解决方案 ,无奈只有自己写一个了

setTimeout() 函数的结果不行  就像上面的解析一样   但是可以使用递归的方式去实现这个效果代码如下:

<script type="text/javascript">
     var i=0;
     function start (){
     /*产生一个0-9的随机数 */
         var a=Math.floor(Math.random()*9)+1;
      document.getElementById(a).style.color="red";
      setTimeout(function(){
      document.getElementById(a).style.color="";
      i++;
      if(i<10){
      start(); 
      }
      },1000)
     };
</script>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2016-06-23
展开全部
timename=setTimeout("function();",3000);单位毫秒,function 可以随便写一个空的也行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式