gpt4 book ai didi

javascript - JavaScript 中的 setTimeout 函数未按正确的时间间隔输出数字

转载 作者:行者123 更新时间:2023-11-28 00:05:41 25 4
gpt4 key购买 nike

我不明白为什么这个函数按预期连续顺序输出 1-5,但间隔为 1 秒,而不是 1、2、3 等秒。我不熟悉 setTimeout 函数,并且我知道这里函数的参数发生了一些我没有看到的情况。

var counter = function() {
for (var i = 1; i <= 5; i++) {
(function(x){
setTimeout(function timer() {
console.log(x);
}, (x * 1000));
})(i);
}
};

最佳答案

您可以通过递归调用来避免 for 循环,只需传递开始和停止索引即可。

var counter = function (x, y) {
setTimeout(function timer() {
console.log(x);
if (x != y) counter((x + 1),y);
}, (x * 1000));
};

counter(1, 5);

<强> Fiddle demo

关于javascript - JavaScript 中的 setTimeout 函数未按正确的时间间隔输出数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31361749/

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