我希望以10毫秒的步数连续三次从0到199计数,例如0 1 2 ... 198 199 0 1 2 .... 198 199 0 1 2 ....第一次运行正在运行罚款:
function count() {
time = 0;
for (var i = 0; i < 200; i++) {
time += 10;
setTimeout(function(j) {
return function() {
console.log(j);
}
}(i), time);
};
};
count();
但是在调用函数三次时,我没有得到所需的结果,如
for (var i = 0; i < 3; i++) {
count();
}
对我来说,正确的方法是什么?
答案 0 :(得分:2)
我想也应该定时:
for (var i = 0; i < 3; i++) {
setTimeout(animateRio /*or do you mean count?*/, i*2000);
}
答案 1 :(得分:0)
您不需要安排所有自己的超时,setInterval可以在每个单位时间调用一个函数。因此,创建一个每10毫秒运行一次的间隔。然后添加一个循环计数器并使用一些模运算。
var time = -1,
interval,
loop = 3;
interval = setInterval(function() {
time += 1;
if(time % 200 === 0) {
loop--;
}
if(loop < 0){
clearInterval(interval);
return;
}
console.log(time % 200);
}, 10);