关于js for中定时器无限执行求解!

var n = 0;
var timer = null;
for(var i = 0; i < 10; i++){
    timer = setInterval(function(){
        console.log(n++);
    },500);
}
clearInterval(timer);

为什么 setInterval 会无限执行 麻烦了解的小伙伴帮忙解释下 拜谢
我知道这样会无限执行但不知道为什么

阅读 3.5k
4 个回答

因为你的 `clearInterval(timer);只清除最后一个定时器的

对于for循环,循环一次产生一个定时器

timer = setInterval(function(){
        console.log(n++);
    },500);

for循环中设定了9个定时器,但是后面只清除了一个

setInterval每次往执行队列中塞进去一个函数,到达指定的时间间隔后,自动取出执行,然后再塞进去一个

你需要用的應該是 setTimeout

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题