在 Javascript 中增加 setTimeout 间隔
Increasing setTimeout interval in Javascript
所以我有一个完全基本的 html 文件。
我想做的是选择一个 运行dom 数字 0-100,间隔增加每个 运行 通过,我想要它完成的方式是让 for 循环执行每个代码时间是 运行 所以 setTimeout 每次都会增加延迟。我最终得到的是一个非常快的 运行 通过,并且自始至终都有相同的延迟。
我的代码可能会进一步解释如下:
for ( i = 0; i < Math.floor( Math.random() * 2000 ); i+=100 ) {
setTimeout( () => {
document.body.innerHTML = ( Math.random() * 101 );
}, i );
}
我想要这样做的原因是代码最终会有一个停止点。
Undeclared variables are always global
用let
声明变量i
,这将创建一个块作用域的局部变量,并将在函数中保留当前迭代值:
for (let i = 0; i < Math.floor( Math.random() * 2000 ); i+=100 ) {
setTimeout( () => {
//document.body.innerHTML += ( Math.random() * 101 );
console.log(i);
}, i );
}
你的循环似乎没有反映你想做什么。
你将i
初始化为0
而i
小于(小于2000的随机数)
将超时设置为 i
毫秒(0、100、200、300...)
i
加 100。
试试这个:
let random = Math.floor(Math.random() * 2000)
let counter = 10 // number of times to run
for (let i = 0; i < counter; i++) {
setTimeOut (() => {
// Do something
}, random)
let random += Math.floor(Math.random() * 2000)
}
所以我有一个完全基本的 html 文件。 我想做的是选择一个 运行dom 数字 0-100,间隔增加每个 运行 通过,我想要它完成的方式是让 for 循环执行每个代码时间是 运行 所以 setTimeout 每次都会增加延迟。我最终得到的是一个非常快的 运行 通过,并且自始至终都有相同的延迟。 我的代码可能会进一步解释如下:
for ( i = 0; i < Math.floor( Math.random() * 2000 ); i+=100 ) {
setTimeout( () => {
document.body.innerHTML = ( Math.random() * 101 );
}, i );
}
我想要这样做的原因是代码最终会有一个停止点。
Undeclared variables are always global
用let
声明变量i
,这将创建一个块作用域的局部变量,并将在函数中保留当前迭代值:
for (let i = 0; i < Math.floor( Math.random() * 2000 ); i+=100 ) {
setTimeout( () => {
//document.body.innerHTML += ( Math.random() * 101 );
console.log(i);
}, i );
}
你的循环似乎没有反映你想做什么。
你将i
初始化为0
而i
小于(小于2000的随机数)
将超时设置为 i
毫秒(0、100、200、300...)
i
加 100。
试试这个:
let random = Math.floor(Math.random() * 2000)
let counter = 10 // number of times to run
for (let i = 0; i < counter; i++) {
setTimeOut (() => {
// Do something
}, random)
let random += Math.floor(Math.random() * 2000)
}