为了账号安全,请及时绑定邮箱和手机立即绑定

vuex 如何清空setInterval

vuex 如何清空setInterval

HUX布斯 2019-05-23 17:48:34
缘由:在子路由里有个setInterval,一直不停调用某个接口,但是回到其他页面或者父路由页面就要清空这个setInterval;在这个子组件中定义setInterval为timer,当然可以清空,不过在其他页面中是找不到这个timer的,所以想到用vuex处理;mounted(){this.init();//this.$store.dispatch('fetchPageList');},methods:{backTrack(){this.$store.commit('showBg',false);//clearInterval(this.$store.commit('changeKeepInter',undefined));},init(){let_time=newDate().getTime();this.$http.get('https://xx?appkey='+this.appId+'&os='+this.plat+'×tamp='+_time,{headers:{'Content-Type':'application/json;charset=UTF-8;'}}).then((data)=>{this.$store.commit('changeKeepInter',setInterval(function(){console.log('打印');//todo},2000));},(err)=>{})}}如上,不知道怎么clearInterval这个timer(changeKeepInter的值)?刚接触vuex,有不了解的地方,请各位大神指教!因为我需要在其他页面中用到这个setInterval,需要在其他页面中手动清空,请问这个该怎么处理?
查看完整描述

2 回答

?
开满天机

TA贡献1786条经验 获得超13个赞

在你路由destroyed的时候清掉呗。
exportdefault{
data(){
return{
someTimer:null
}
},
methods:{
someFunc(){
this.someTimer=setInterval(()=>{},2000);
}
},
destroyed(){
this.someTimer&&window.clearInterval(this.someTimer);
}
}
                            
查看完整回答
反对 回复 2019-05-23
  • 2 回答
  • 0 关注
  • 365 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信