js延时器里面写的定时器之后定时器无法清除了

js延时器里面写的定时器之后定时器无法清除了。
网上搜了很多资料都无法解决。包括加个Window还有在data里面定义定时器的名字。都不行。
是不是不能一起使用呢?
我在清除前后打印了那个定时器的编号。如果清除成功了。为什么前后的值是一样的?而且下一次还是按顺序排号的?
如图:
image.png

阅读 2.6k
2 个回答

在你的代码里,setTimeout中的代码并没有运行,运行的是setInterval中的代码,这个你没有清除,所以在不断运行。

无论是setTimeout还是setInterval都会返回一个数字,根据这个数字我们可以清除定时器,你这里也确实清楚了,但是你把这个数字赋值给变量后,变量本身和定时器本身是没有关系的,只是变量的值和定时器的id一样,我们可以根据这个变量清除定时器,你可以把变量当做一个工具,在清除定时器后也青空下变量的值

image.png

打断点看一下, 你的代码到底是在哪里面执行, 然后再判断clear方法用的对不对.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题