javascript - 如何使 clearInterval 工作,为什么它不工作?
问题描述
我在这里有一个条件,如果a = 6
,停止setInterval
所以我用于clearInterval
我的条件,但它没有生效,任何人都可以帮助我如何clearInterval
在这种条件下进行工作?
请注意,在我的情况下doSomething
,在一段时间后执行 makig 也是至关重要的,这就是我setTimeout
在这里使用的原因。
function doSomething() {
let a = 1;
return setInterval(() => {
if (a < 6) {
a++;
console.log(a);
} else {
a = 1;
}
}, 1000)
}
setTimeout(doSomething, 5000);
var id = doSomething();
if (a === 6) {
clearInterval(id);
}
解决方案
你可以clearInterval
在里面打电话setInterval
- 我认为这就是你想要实现的目标:
let intervalId;
function doSomething() {
let a = 1;
return setInterval(() => {
console.log(a);
if (a++ === 6) {
clearInterval(intervalId);
}
}, 1000);
}
setTimeout(() => {
intervalId = doSomething();
}, 5000);
console.log('Waiting for 5 seconds before calling doSomething..');
推荐阅读
- postgresql - 我无法使用 psycopg2/copy_expert 将我的 CSV 复制到 postgres
- javascript - 缩短 if else 语句
- javascript - 多种通配符类型键
- c# - Cosmos dbcontext 检索空结果
- angular - 当在 ng-select 中未选择任何值时,将 form.valid 设置为 false
- css - 如代码所示,如何为链接实现不同的悬停效果?
- c++ - 以 Visual Studio 为目标的 Windows XP 的最新 C++ 标准是什么?
- python - python中的多行int输出?
- flutter - 动态修改图像不会更新屏幕上的图像
- java - 如何在 Swagger 代码生成中获取 ENUM 字段值?