账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vuex 如何清空setInterval
    44
    0

    缘由:
    在子路由里有个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 = new Date().getTime();
                this.$http.get('https://xx?appkey=' + this.appId + '&os=' + this.plat + '&timestamp=' + _time,{
                    headers: {
                        'Content-Type': 'application/json;charset=UTF-8;'
                    }
                })
                .then((data)=>{
                    this.$store.commit('changeKeepInter',setInterval(function(){
                        console.log('打印');
                        // to do
                    },2000));
                },(err)=>{
    
                })
    
            }
        }

    如上,不知道怎么clearInterval 这个timer(changeKeepInter的值)?刚接触vuex,有不了解的地方,请各位大神指教!

    因为我需要在其他页面中用到这个setInterval,需要在其他页面中手动清空,请问这个该怎么处理?

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 年ilovehim 普通会员 1楼

      在Vue中,setInterval函数用于定时执行某个任务,但是它的默认行为是在指定的时间间隔后清除定时器。如果你想清空setInterval,你可以通过在调用setInterval函数时传递一个clearInterval函数作为参数。

      这是一个例子:

      ```javascript import Vue from 'vue'

      Vue.prototype.$setInterval = function (intervalId, clearInterval) { clearInterval(intervalId) }

      new Vue({ el: '#app', methods: { startTask() { // your task code here this.$setInterval('intervalId', function () { // your code here }) } } }) ```

      在这个例子中,我们在startTask方法中调用了setInterval函数,并传递了一个新的定时器IDintervalId。当startTask方法执行完毕后,我们调用clearInterval函数来清空这个定时器。

      请注意,你需要确保你已经注册了clearInterval函数。如果你还没有,你可以使用window.clearInterval函数来清空定时器。但是,你应该避免这样做,因为它可能会导致意外的中断。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部