gpt4 book ai didi

Javascript 关闭 setTimeout 间隔问题

转载 作者:行者123 更新时间:2023-12-02 05:59:36 24 4
gpt4 key购买 nike

为什么每 1 秒记录一次以下内容?我将 1000 毫秒乘以增量。我的日志不应该在 1 秒、2 秒、3 秒后显示吗?

for (var i = 0; i < 5; i++) {
(function(r) {
setTimeout(
function() {
console.log(r)
}
, r * 1000 );
})(i)
}

JSFIDDLE

最佳答案

它工作正常,基本上,循环用作编写此代码的简写:

setTimeout( function(){ console.log(0) }, 1000)
setTimeout( function(){ console.log(1) }, 2000)
setTimeout( function(){ console.log(2) }, 3000)
setTimeout( function(){ console.log(3) }, 4000)
setTimeout( function(){ console.log(4) }, 5000)

所以每个看起来像这样一个接一个地熄灭是有道理的:


▀▀
▀▀▀
▀▀▀▀
▀▀▀▀▀

您可能正在寻找的是

(function newTimeout( seconds ){
if( seconds > 4 ) return;
console.log(seconds);
setTimeout( function(){
newTimeout( seconds + 1 )
}, seconds * 1000);
})(0);

看起来像这样


▀▀
▀▀▀
▀▀▀▀
▀▀▀▀▀

希望对您有所帮助!

关于Javascript 关闭 setTimeout 间隔问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32001210/

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