vue 页面接口请求 定时刷新

timer = null // 定时器


created () {
   this.timer = setInterval(() => {
      this.initData()
   }, 5000) // 5s
}


async initData () {
    .....
}


destroyed () {
    clearInterval(this.timer)
}

setInterval不会清除定时器队列,每重复执行1次都会导致定时器叠加,最终导致页面卡死

解决办法:setTimeout是自带清除定时器的(注:箭头函数解决setTimeout内的this指向问题)

this.timer = setInterval(() => {
    setTimeout(() => {
      this.initData()
    }, 0)
}, 5000)
发布了12 篇原创文章 · 获赞 0 · 访问量 1101

猜你喜欢

转载自blog.csdn.net/lq099526/article/details/104408349