Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何每秒在索引中连续输出每个数字?_Javascript_For Loop_Setinterval_Console.log - Fatal编程技术网

Javascript 如何每秒在索引中连续输出每个数字?

Javascript 如何每秒在索引中连续输出每个数字?,javascript,for-loop,setinterval,console.log,Javascript,For Loop,Setinterval,Console.log,我有以下循环: for(让index=0;index=限制){//检查限制 clearInterval(句柄);//停止计时器 } } 函数停止(){ 间隙(手柄); } start(); setTimeout(函数(){ start(); },3110); // 计数时重置。这里有一个或多或少但更优雅的解决方案,使用生成器函数 生成器函数在这里很有用,因为它们的执行可以通过yield暂停,并通过调用生成器对象的next方法恢复: 函数*logger(){ while(true){ 对于(让

我有以下循环:

for(让index=0;index<4;index++){
setInterval(函数(){
console.log(索引)
}, 1000);
}
var计数器=0,
限值=5,
句柄;//全局变量
函数start(){
计数器=0;
clearInterval(句柄);//重置
handle=setInterval(count,1000);//间隔句柄
}
函数计数(){
console.log(counter++);//递增计数器
如果(计数器>=限制){//检查限制
clearInterval(句柄);//停止计时器
}
}
函数停止(){
间隙(手柄);
}
start();
setTimeout(函数(){
start();

},3110); // 计数时重置。
这里有一个或多或少但更优雅的解决方案,使用生成器函数

生成器函数在这里很有用,因为它们的执行可以通过
yield
暂停,并通过调用生成器对象的
next
方法恢复:

函数*logger(){
while(true){
对于(让索引=0;索引<4;索引++){
console.log(索引)
产量
}
}
}
让生成器=记录器()

setInterval(()=>generator.next(),1000)
提示:将
setInterval
放入循环中是不正确的。这样做的目的是立即调用
setInterval
5次,而实际上您要做的是调用
setInterval
一次,并让它在每次运行回调时输出不同的数字。这很好,谢谢。清除间隔后,如何重新启动间隔,使其在达到4后返回到0?@RalphDavidernathy您只需将开始计数的代码包装为一个函数,并在需要时调用它。