setInterval与循环时间
setInterval with loop time
setInterval(function(){}, 200)
这段代码每200毫秒运行一次函数,如果我只希望函数运行10次,我该怎么做呢?
谢谢你的帮助
使用一个计数器,每次回调被执行时递增,当它达到你想要的执行次数时,使用clearInterval()
终止计时器:
var counter = 0;
var i = setInterval(function(){
// do your thing
counter++;
if(counter === 10) {
clearInterval(i);
}
}, 200);
(function(){
var i = 10;
(function k(){
// your code here
if( --i ) {
setTimeout( k, 200 );
}
})()
})()
如果你想让它运行10次,它应该运行的时间是每200毫秒,那么200X10 = 2000
var interval = setInterval(yourfunction, 200);
setTimeout(function() {
clearInterval(interval)
}, 2000);
但是它只运行了9次所以我们必须增加200毫秒
var interval = setInterval(yourfunction, 200);
setTimeout(function() {
clearInterval(interval)
}, 2200);
或者你可以在setInterval
之前运行yourfunction();
var interval = setInterval(yourfunction, 200);
setTimeout(function() {
clearInterval(interval)
}, 2000);
直接使用for循环,这样更简单:
试试这段代码。
for (counter=0; counter<0; counter++) {}
可重用的方法与选项 number of loop
和 delay time
和利用 callback
函数
const loopInterval = ( callBack, numberOfLoop, delay ) => {
let counter = 0;
let i = setInterval( ()=> {
callBack([counter, numberOfLoop]);
counter++;
if(counter === numberOfLoop ) clearInterval(i);
}, delay);
}
const runThisFunctionAsCallBack = ( x ) => console.log(`Do something here... Loop # ${x}` )
loopInterval( runThisFunctionAsCallBack, 4, 500 )
我的方法类似于JavaScripter199的方法(使用for循环),但包含了setInterval函数。见下文:
for (let runner = 0; runner < 10; runner++) {
setInterval(() => {
//Some code logic of yours.
}
}, 200 //run every 200 milliseconds);
}
相关文章:
- 对于加载时间过长的循环来说是巨大的
- 如何优化这个jquery循环的执行时间
- 表单提交在一段时间循环PHP,jquery
- 使用循环打印时间列表
- javascript使用循环的打印时间
- 在for循环中另一个音频结束后播放一段时间的音频
- 如何在数组中循环,等待每个项目之间的时间
- Vanilla Js:在一个事件中开始一段时间的循环,然后用第二个事件打破它?('mouseover'启
- AngularJS:在长时间循环期间强制更新DOM(即进度指示器)
- 在执行时间循环中使用继续
- JavaScript:循环一段时间
- for 循环元素的执行时间比内部 AJAX 调用可以响应的要快
- 使用新值循环 2000 个元素的数组时,浏览器更新元素需要很长时间
- 运行一次函数(在一段时间循环中)
- 在 JavaScript 中,在循环中创建函数的具体原因是什么,可能会浪费计算时间
- 文件的上次修改时间 - 循环
- 在一段时间循环中刷新来自跳跃运动的帧
- 我真的不知道如何为这个JS函数创建时间循环
- 从选定的持续时间循环播放视频
- 一段时间循环中的 IF 语句不起作用,我哪里出错了