【发布时间】:2021-07-27 00:04:34
【问题描述】:
我这里有一个条件,如果a = 6,请停止setInterval,所以我使用clearInterval 作为我的条件,但它没有生效,任何人都可以帮助我如何制作clearInterval在那种条件下工作?
请注意,在我的情况下,makig doSomething 在一段时间后执行也是最重要的,这就是我在这里使用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);
}
【问题讨论】:
-
a未在doSomething之外定义。 -
@HereticMonkey 不,我知道变量作用域的概念,即使我将
if (a = 6) { clearInterval(id); }放在 doSomething 函数中,它也不起作用,我只是不知道如何使它起作用。跨度> -
你必须在间隔回调中调用
clearInterval。 Stop setInterval call in JavaScript -
离题 - 在 if 语句中,您分配 (
=) 而不是将 (==)6与变量a进行比较。6是 truthy 所以 if 语句将始终执行。
标签: javascript function setinterval clearinterval