首页 > 解决方案 > Nuxtjs - 从客户端和服务器端停止 setInterval() 执行

问题描述

在这个应用程序中,我想在某个时间间隔内从 api 加载数据并将其提交到存储。

当我运行该应用程序时,计时器启动,并在离开下一个 nuxt-link 页面计时器停止后。

但我可以看到它只在客户端控制台上停止,并且在 vscode 终端中我可以看到计时器仍在执行。

我想要的是我想在服务器和客户端中停止计时器,当我返回页面时,如果计时器实例存在,则不再创建计时器,请使用相同的计时器。

data() {
  return {
    i: 1,
    timer: null
  }
},
methods: {
  getTopGainers() {
    this.timer = setInterval(() => {
      // call axios and save it to store
      console.log(this.i++)
    }, 1000)
  }
},
beforeDestroy() {
  clearInterval(this.timer)
},
created() {
  this.getTopGainers()
}

标签: vue.jsnuxt.js

解决方案


推荐阅读