首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >javascript中延迟的'for loop‘

javascript中延迟的'for loop‘
EN

Stack Overflow用户
提问于 2013-05-06 06:23:59
回答 2查看 108关注 0票数 0

我有一个延迟的循环,它显示数字0-3,延迟1秒,但我想让它重新开始这个过程。

我试着用x<99把整个代码放到一个while循环中(一些永远不会发生的事情,因此让这个循环永远重复),这似乎行不通

代码如下:

代码语言:javascript
复制
sequence=["0","1","2","3"];

while (x<99) {
x=-1;
(function myLoop (i) {          
   setTimeout(function () {   
   x++;
   document.write(sequence[x] + "<br/>");
   if (--i) myLoop(i);  
  }, 1000)
  })(4); 
}

Here is a code-pen link

有人能帮帮忙吗?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-06 06:32:11

在这种情况下,循环将不起作用。有多种方法可以做到这一点。一种方法是“递归地”调用setTimeout,在每次调用时增加索引。

代码语言:javascript
复制
var sequence=["0","1","2","3"];

(function() { // some boilerplate code to keep `i` private
    var i = 0; // running index
    (function run() {
        console.log(sequence[i]);
        i = (i+1) % sequence.length; // increase `i` and wrap around
        setTimeout(run, 1000); // next iteration
    }());
}());
票数 4
EN

Stack Overflow用户

发布于 2013-05-06 06:26:19

setInterval()出手相救:

重复调用函数或执行代码段,每次调用该函数之间有固定的时间延迟。

https://developer.mozilla.org/en/docs/DOM/window.setInterval

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16389734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档