gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 04:39:53 25 4
gpt4 key购买 nike

在下面的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com