javascript - 增加 Javascript 中的 setTimeout 间隔

标签 javascript settimeout

所以我有一个完全基本的 html 文件。 我想做的是选择一个随机数 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 ,这将创建一个 block 范围的局部变量,并将保留函数中的当前迭代值:

for (let i = 0; i < Math.floor( Math.random() * 2000 ); i+=100 ) { 
  setTimeout( () => { 
    //document.body.innerHTML += ( Math.random() * 101 );
    console.log(i);
  }, i );
}

关于javascript - 增加 Javascript 中的 setTimeout 间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60179709/

相关文章:

javascript - 带有 grunt 的动态数据表

javascript - 实时图表和 iPad 应用程序

android - sencha 中的 setTimer() 和 timeInterval() 在 Android 和 iPhone 设备上不起作用

javascript - CSS 动画仅在 iPad 上导致 Phonegap App 崩溃

javascript - 如何实现Tab键作为控件而不跳转到地址栏

javascript - 使用 setTimeout 在 Canvas 中设置动画时出现问题

javascript - 如何在 Javascript 中重置 setTimeout() 的时间值?

javascript - setTimeout 不等待 JQuery Mobile 中的指定时间间隔

javascript - After Effects 动画 bodymovin.js : font issue, 看起来很困惑

javascript - 调用 setTimeout 是否清除调用堆栈?