所以,我正在开发一个计时器,这是我现在的代码:
function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > milliseconds) {
break;
}
}
}
function timerCreate() {
for (i = 0; i < 10; i++) {
sleep(1000);
minusOneSec();
}
}
我想做的就是每隔一秒执行十次 minusOneSec() 函数。 (我从前段时间在 StackOverflow 中看到的一个答案中获取了 sleep() 函数的代码,我不记得是谁提出了它,所以如果你知道,请告诉我,以便我可以信任他们。)它可以工作,但是现在我注意到这个 sleep 函数将停止页面中运行的所有java脚本。这是真的?我还尝试过的是:
function timerCreate() {
for (i = 0; i < 10; i++) {
setInterval(minusOneSec, 1000);
}
}
但它所做的是连续运行 minusOneSec() 函数 10 次,然后等待一秒钟,然后该函数连续运行 10 次,依此类推。有没有一种方法可以实现我的意图,但允许其他 JavaScript 代码同时运行?如果需要的话我可以使用 jQuery。
最佳答案
您只需调用 setInterval()
一次(而不是循环)并检查内部的计数器。 setInterval()
将继续执行传递的函数,直到我们清除间隔。
var i = 0,
interval = setInterval(function() {
minusOneSec();
i++;
if(i >= 10) clearInterval(interval); // stop it
}, 1000);
关于javascript - 以 1 秒的间隔重复某个函数一定次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32455675/