javascript - Node.js 中的 setTimeout 中计数器没有增加?

标签 javascript node.js loops settimeout event-loop

在下面的 Node.js 程序中,循环执行了很多次,但为什么控制没有从循环中出来。我没有忘记在for中执行i++,我在setTimeout中增加了i的值。

function abc () {
  for(var i=0;i<5;) {
    console.log("executes loop");
    setTimeout(function(){
      console.log(i++);
    },0)
  }
}

abc();

最佳答案

您忘记将 i++ 放入循环中。

试试这个

<html>
<body>
 


	<script>
		window.onload = function function_name(argument) {
			// body...

		function abc () {
			for(var i=0;i<5;i++) {
				console.log("executes loop");
				setTimeout(function(){
					console.log(i++);
				},0)
			}
		}

		abc();
		}

	</script>
</body>
</html>

由于超时,它会跳出循环,因此当它返回时,i 的值将为 5,因此它将在 5 之后打印。

已编辑

如果你想在超时内增加值

试试这个

<html>
<body>
 


	<script>
		window.onload = function function_name(argument) {
			// body...

		var j = 0;

		function abc () {
			for(var i=0;i<5;i++) {
				console.log("executes loop");
				setTimeout(function(){
					i++;
					j = i-6;
					console.log(j);
				},0)
			}
		}

		abc();
		}

	</script>
</body>
</html>

关于javascript - Node.js 中的 setTimeout 中计数器没有增加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43133269/

相关文章:

javascript 切换多个 Div 的可见性

Javascript |集合中的唯一对象

javascript - td 的 onclick 更改 td css

linux - [ : too many arguments when taking * as an input

java - 从Java中的数字列表中查找平均值

c# - 如何在Asp.net中的.cs文件后面的代码中调用javascript函数

node.js - 403 Forbidden from bitcoind - 在 docker 上运行的服务器

javascript - Webpack 开发服务器编译成功但重新加载或重建不工作

node.js - 使用 xvfb headless : false 运行 Puppeteer

string - 在 gnuplot 中动态制作 x,y 控制