繁体   English   中英

使用setTimeout时你需要clearTimeout吗?

[英]When using setTimeout do you have to clearTimeout?

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

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

根据规格

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

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

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

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

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

完成后没有理由清除它。 你的朋友可能与setInterval混淆了。

不, setTimeout在1次调用后停止运行。 但是,要停止setInterval ,必须使用clearInterval 如果你创建一个无限循环的setTimeout那么可以使用clearTimeout

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM