使用setTimeout时你需要clearTimeout吗?

Neb*_*Fox 66 javascript

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

jma*_*777 68

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

根据规格:

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

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


Mad*_*iha 41

您实际上并不需要使用clearTimeout,只有在您希望取消已经设置的超时之前才使用它.

它通常更实用clearInterval,setInterval因为setInterval通常无限期运行.


g.d*_*d.c 13

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


Bla*_*ger 8

完成后没有理由清除它.你的朋友可能会被困惑setInterval.


Tre*_*vor 8

不,setTimeout在1次通话后停止运行.setInterval但是,为了停止,你必须使用clearInterval.如果你创建一个无限循环setTimeout然后clearTimeout可以使用.