在 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)
}