欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

解决js中的setInterval清空定时器不管用问题

程序员文章站 2022-03-24 09:00:48
使用场景:我在函数a中调用定时器函数,定时器是单独写的一个函数原因:页面加载时我调用了1次函数a,然后又单独调用了一次定时器函数,导致调用了2次setinterval(),导致有setinterval...

使用场景:我在函数a中调用定时器函数,定时器是单独写的一个函数

原因:页面加载时我调用了1次函数a,然后又单独调用了一次定时器函数,导致调用了2次setinterval(),导致有setinterval_id有2个值。

通过打印定时器的值发现的问题。

clearinterval()只关闭了其中一个setinterval_id,另一个setinterval_id还会启动setinterval()。

解决方法:把单独调用的定时器函数去掉。

补充知识:js vue中settimeout无法通过cleartimeout清除问题

在异步清除中,利用vue 中data存放settimeout的标识进行清除时,无法清除。则需要在函数前加上window.即可

如window.settimeout与window.cleartimeout

具体代码如下

精简后的代码。

环境为electron-vue 渲染进程异步获取主进程上html并渲染到页面、过程中需要有loading的显示。

settimeout 与cleartimeout 未加window时,this.timeoutloading事件总会被触发。

以上这篇解决js中的setinterval清空定时器不管用问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。