setInterval,为啥只有当 clearInterval 函数高于 setInterval 函数时,计时器才停止?

Posted

技术标签:

【中文标题】setInterval,为啥只有当 clearInterval 函数高于 setInterval 函数时,计时器才停止?【英文标题】:setInterval, why is it that the timer stops only when clearInterval function is above the setInterval function?setInterval,为什么只有当 clearInterval 函数高于 setInterval 函数时,计时器才停止? 【发布时间】:2017-02-04 19:56:07 【问题描述】:

只有在 setInterval 函数下方定义了 clearInterval 时,我的计时器才会停止。任何解释将不胜感激。谢谢

【问题讨论】:

缺少太多代码来回答这个问题。 你无法停止未启动的计时器 寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及 重现它所需的最短代码问题本身。没有明确问题陈述的问题对其他读者没有用处。请参阅:How to create a Minimal, Complete, and Verifiable example。 【参考方案1】:

setInterval() 实际上启动了一个计时器,在指定的方法/例程在指定的时间间隔过后执行。

另一方面,clearInterval() 用于重置由先前调用 setInterval() 启动的计时器

因此,在 setInterval() 之后调用 clearInterval() 是合乎逻辑的。此外,clearInterval() 需要作为参数,由 setInterval() 返回的要停止的计时器的 ID。所以你不能在 setInterval() 之前调用 clearInterval() ,因为你没有要清除的计时器的 ID。

【讨论】:

以上是关于setInterval,为啥只有当 clearInterval 函数高于 setInterval 函数时,计时器才停止?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 ngOnInit() 为 setInterval() 执行多次?

为啥此 setInterval 中未定义此 useRef 值?

为啥 requestAnimationFrame 比 setInterval 或 setTimeout 更好

setInterval 在它调用的函数中似乎不喜欢 () 。为啥? [复制]

为啥我要使用 RxJS 的 interval() 或 timer() 轮询而不是 window.setInterval()?

为啥框架集中两个子页面不能同时运行settimeout或者setInterval函数