使用setTimeout时,您是否需要clearTimeout?


85

有人告诉我,使用setTimeout时必须用清除clearTimeout。超时之前我可以理解,但是为什么呢?还是不正确?

Answers:


86

这不是事实-完成超时后清除超时没有什么害处,但这不是必须的。

根据规格

如果handle无法识别在其上调用[clearTimeout]的WindowOrWorkerGlobalScope对象的活动计时器列表中的条目,则该方法不执行任何操作。

换句话说,这是无人操作;什么也不会发生,也不会抛出任何错误。


50

实际上clearTimeout,您不需要使用,仅在希望取消已设置的超时之前使用它。

通常,它可以无限期地运行clearIntervalsetInterval因此通常更实用setInterval


15

clearTimeout仅对于取消超时是必需的。超时触发后,可以放心地将其保留。 clearInterval通常,它是防止无限期地继续下去所必需的。


10

完成后没有理由清除它。您的朋友可能对感到困惑setInterval


10

不,setTimeout在1个电话后停止运行。为了停止setInterval,您必须使用clearInterval。如果创建一个无限循环,setTimeoutclearTimeout可以使用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.