几次尝试后如何停止我的设定间隔?

时间:2019-05-31 18:50:20

标签: vue.js setinterval

我正在尝试将设置的时间间隔函数发送到Iframe后停止,但是clearInterval()实际不起作用。

我也想使用

代码如下:

    <script>
         let interval = null;
         let count = 0;

         interval = setInterval(function(){

           document.getElementById('iframe')
            .contentWindow.postMessage({
              userData: { 
                info1: localStorage.info1,
                info2: localStorage.info2,
                info3: localStorage.info3
                  }}, 
                'http://localhost:8081/list') }, 10000);

          export default {

            name: 'Dashboard',

              components: {
                ToolBar
            },
            methods: {

              connect(){

              clearInterval(interval);
              console.log("CONNECTING!!!!!!!!!");;
              this.$router.push("/aplicativo");

              }

              },
               data () {
              return {
                //
              }

            }, 
          }

    </script>

2 个答案:

答案 0 :(得分:1)

通过在组件的setInterval函数中初始化mounted并将间隔ID存储为组件的一部分,您将获得更好的结果:

export default {
    data() {
        return {
            this.interval = null;
        }
    },
    mounted() {
        this.interval = setInterval(...);
    },
    connect() {
        clearInterval(this.interval);
    }
}

答案 1 :(得分:1)

我没有给您直接答案,而是一种方法

mounted() {
    let tries = 3; // suppose you want to stop after 3 tries
    let interval = setInterval(() => { 
        if (!tries--) {
            clearInterval(interval);
        } else { 
           // TODO: your stuff
        }
    }, 1000); // interval for 1000 milisec
}