gpt4 book ai didi

javascript - JS setTimeout 不延迟

转载 作者:行者123 更新时间:2023-11-30 13:31:16 26 4
gpt4 key购买 nike

好的伙计们,我正在尝试每 1/4 秒左右在我的页面上添加数字。因此,更改对用户是可见的。我正在使用 setTimeout 并且我的所有计算都正确发生但没有任何延迟。这是代码:

for(var i = 0; i < 10; i++)
{
setTimeout(addNum(i),250);
}

我也试过捕获返回值:

for(var i = 0; i < 10; i++)
{
var t = setTimeout(addNum(i),250);
}

我也尝试过使用函数语法作为 setTimeout 参数的一部分:

for(var i = 0; i < 10; i++)
{
var t = setTimeout(function(){array[j].innerHTML + 1},250);
}

我也试过将代码放在一个字符串中,并将函数调用放在一个字符串中。我不能让它延迟。请帮忙!

最佳答案

怎么样:

var i=0;
function adder() {
if(i>=10) {return;}
addNum(i++);
setTimeout(adder,250);
}
adder();

当您执行 setTimeout(addNum(i),250); 时,您会立即执行该函数(函数名后跟 () 将立即执行并通过返回值 到 1/4 秒后执行的超时)。所以在一个循环中,会立即执行所有 10 个。这就是您所看到的。

捕获返回值 var t = setTimeout(...); 很有帮助,但对您的用例没有帮助;该值为定时器id号,用于取消超时。

不确定您的最后一次尝试是什么,尽管可能是您的 addNum 例程的函数体,因此适用与上述相同的逻辑。

关于javascript - JS setTimeout 不延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6686853/

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