javascript - 是否可以使用 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)
计数器只是继续以与重置前相同的速率增加。是否可以终止此过程?
解决方案
你可以试试下面吗?
function initCounter() {
clearInterval(timer);
timer = setInterval(loop, 1000 / (2**counter));
}
function reset() {
counter = 0;
initCounter();
}
推荐阅读
- video - 使用 ffmpeg 从 %M 和 %S 中减去
- php - 对图像执行多个操作时的 ImageMagick (Imagick) 伪影。原因是什么?
- android - Android studio searchview:不显示搜索结果
- java - 如何让 Netbeans 识别 java.sql 模块
- ios - 在 iPhone 模拟器上运行的颤振卡在“Xcode 构建完成”上。(它在android模拟器中运行良好)
- oracle - ORA-30926: 无法在源表中获得一组稳定的行。即使该 id 在 src 选项卡中重复,我也需要更新目标表的行
- mysql - 在多个表上触发并将其更新为单列
- java - 我的 try catch 异常没有像我希望的那样工作
- javascript - 如何从本地选择文件并使用 HTML/CSS/JAVASCRIPT 在网页中列出它们?
- android - espresso 是否可以在应用程序中测试叠加层?