首页 > 解决方案 > 是否可以使用 Javascript 中的另一个函数停止循环?

问题描述

我有一个不断增加值的函数。我正在尝试实现一个重置按钮,该按钮会将值重置为 0 并防止它再增加。但是,重置按钮只会更改值,但循环会继续进行。下面是完成此操作的代码(此块中未提及实际增加的值,计数器变量与值增加的速率有关):

var counter = 0;

function create() {
//creates stuff
}

var timer;


function loop() {
        create()
}

function counter() {
    clearInterval(timer)
    timer = setInterval(loop, 1000 / (2**counter))
}

它按预期工作。但是,我的重置按钮如下所示:

function reset() {
    counter = 0
    clearInterval(timer)
    timer = setInterval(loop, 0)

计数器只是继续以与重置前相同的速率增加。是否可以终止此过程?

标签: javascript

解决方案


你可以试试下面吗?

function initCounter() { 
  clearInterval(timer);
  timer = setInterval(loop, 1000 / (2**counter));
} 

function reset() { 
  counter = 0;
  initCounter(); 
}


推荐阅读