使用setTimeout时你需要clearTimeout吗?

时间:2011-09-12 17:23:42

标签: javascript

有人告诉我,当您使用setTimeout时,必须使用clearTimeout清除它。我可以在超时用完之前理解,但为什么之后呢?还是不真实?

5 个答案:

答案 0 :(得分:57)

这不是真的 - 在完成后清除超时没有坏处,但没有必要。

根据specification

  

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

换句话说,这是一个无操作;没有任何反应,也不会抛出任何错误。

答案 1 :(得分:33)

您实际上不需要使用clearTimeout,只有在您想要取消已经设置的超时时才使用它。

clearIntervalsetInterval一起使用通常更实际,因为setInterval通常无限期运行。

答案 2 :(得分:10)

clearTimeout仅用于取消超时。超时触发后,可以安全地单独使用。 clearInterval通常是必要的,以防止它无限期地继续下去。

答案 3 :(得分:6)

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

答案 4 :(得分:6)

不,setTimeout在1次通话后停止运行。但是,要停止setInterval,您必须使用clearInterval。如果您创建setTimeout的无限循环,则可以使用clearTimeout