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()?