延迟';对于循环';在javascript中

延迟';对于循环';在javascript中,javascript,loops,while-loop,delay,Javascript,Loops,While Loop,Delay,我有一个延迟循环,显示数字0-3,延迟1秒,但我想让它重新开始这个过程 我尝试使用xsetInterval()将整个代码放入while循环。来拯救: 重复调用函数或执行代码段,每次调用该函数之间有固定的时间延迟 setInterval()来拯救: 重复调用函数或执行代码段,每次调用该函数之间有固定的时间延迟 在这种情况下,循环不起作用。有多种方法可以做到这一点。一种是“递归地”调用setTimeout,增加每次调用的索引 var sequence=["0","1","2","3"]; (fun

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

我尝试使用x
setInterval()将整个代码放入while循环。
来拯救:

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

setInterval()
来拯救:

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


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

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

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

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

@卡丹:你得看看控制台@亚历克斯23:是的,我想
setInterval
也同样有效。就个人而言,我觉得在递归中使用
setInterval
时,我可以更好地控制整个过程。我也只是更习惯于它(结合Ajax调用)。我想这可以归结为您是否希望严格地每x秒执行一次代码,还是在最后一次运行后x秒执行一次代码。在某些应用程序中可能会有不同的情况。@alex23:我读到这个问题是因为这个过程应该永远运行。谢谢,我用document.write替换了console.log,它成功了perfectly@Caedan:你得看看控制台@亚历克斯23:是的,我想
setInterval
也同样有效。就个人而言,我觉得在递归中使用
setInterval
时,我可以更好地控制整个过程。我也只是更习惯于它(结合Ajax调用)。我想这可以归结为您是否希望严格地每x秒执行一次代码,还是在最后一次运行后x秒执行一次代码。在某些应用程序中可能会有不同的情况。@alex23:我读到这个问题是因为这个过程应该永远运行。谢谢,我用document.write替换了console.log,它工作得非常好