Как остановить мой установленный интервал после нескольких попыток? - PullRequest
0 голосов
/ 31 мая 2019

Я пытаюсь остановить функцию установленного интервала для остановки после отправки информации в мой 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 ]

1 голос
/ 31 мая 2019

Я не даю вам прямой ответ, это подход

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
}
1 голос
/ 31 мая 2019

Вы получите лучшие результаты, инициализировав setInterval в функции mounted вашего компонента и сохранив идентификатор интервала как часть компонента:

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