setInterval прекращает работу кода при создании нового компонента в vue

Сейчас попытаюсь привести код:

methods: {
    
      methods: {
    timeGameMain: function () {
      this.nowTime = 0;
      var nowRandomTime = -1;
      var randomTime = -1;
      var randomBadSubstance = -1;
      var randomGoodSubstance = -1;
      var arrGoodSubst = [];
      var arrBadSubst = [];
      this.stop = setInterval(() => {
        if (this.isPause) {
        } else {
          if (this.nowTime > this.timeGame) {
            this.gameOver();
          }
          //тут мы подготовим массивы чтобы вбросить в TergetComponent когда прийдет время
          if (nowRandomTime === -1) {
            randomTime = this.getRndInteger(2000, 7000);
            nowRandomTime = 0;
            randomBadSubstance = this.getRndInteger(5, 12);
            randomGoodSubstance = this.getRndInteger(2, 10);
            //подготовить массив для создания TargetComponent
            //плохие компоненты
            for (var i = 0; i < randomBadSubstance; i++) {
              var badRand = this.getRndInteger(0, this.allBadSubsts.length - 1);
              arrBadSubst.push(this.allBadSubsts[badRand]);
            }
            //хорошие компоненты
            for (var i = 0; i < randomGoodSubstance; i++) {
              var goodRand = this.getRndInteger(0, this.allGoodSubsts.length - 1);
              arrGoodSubst.push(this.allGoodSubsts[goodRand]);
            }
            //тут момент проброски массива в поле
          } else if (nowRandomTime > randomTime) {
            nowRandomTime = -1; //скидываем счетчик не 0 а в -1 чтобы на след итерации подготовить массив
            for (var i = 0; i < randomGoodSubstance; i++) { //сперва готовим код для props хороших веществ
              var subst = arrGoodSubst[i];
              /*тут доб сл код*/
              var cl = subst.cl + " " + subst.name;
              var path = subst.linkImg + subst.name;
              var linkImg = "";
              if (
                subst.type === "good" ||
                subst.type === "good_thermometer" ||
                subst.type === "bad_thermometer"
              ) {
                linkImg = require(`../assets/substances/good/${subst.name}.png`);
              } else if (subst.type === "bad") {
                linkImg = require(`../assets/substances/bad/${subst.name}.png`);
              }
              var style = this.getRandomPosition();
              style.animationDuration = subst.lifTime+"ms";
/************************************************************************************************/
/*************************************************************************************************/
/*Беда тут. Обьект добавляется в items и таким образом создается новый компонент, только вот после этого
дальше код не исполняется
              this.items.push({   //добавляем с подготовленными параметрами в items
                id: (this.items.length>0) ? (this.items[length-1].id+1) + "" : 0+"",
                name: subst.name,
                lifeTime: subst.lifTime,
                linkImg: linkImg,
                cl: cl,
                style: style,
              });
/*а дальше не исполняется код!!!!!!!*/
              if(this.items == null) {
                console.log("null");
              }
              /*тут доб сл код*/
            }
            arrGoodSubst = []; //очистим массив
            for (var i = 0; i < randomBadSubstance; i++) { //теперь готовим код для плохих веществ
              var subst = arrBadSubst[i];
              /*тут доб сл код*/
              var cl = subst.cl + " " + subst.name;
              var path = subst.linkImg + subst.name;
              var linkImg = "";
              if (
                subst.type === "good" ||
                subst.type === "good_thermometer" ||
                subst.type === "bad_thermometer"
              ) {
                linkImg = require(`../assets/substances/good/${subst.name}.png`);
              } else if (subst.type === "bad") {
                linkImg = require(`../assets/substances/bad/${subst.name}.png`);
              }
              var style = this.getRandomPosition();
              style.animationDuration = subst.lifTime+"ms";
              
              this.items2.push({
                id: (this.items.length>0) ? (this.items[length-1].id+1) + "" : 0+"",
                name: subst.name,
                lifeTime: subst.lifTime,
                linkImg: linkImg,
                cl: cl,
                style: style,
              });
              console.log("Vue - кусок навоза");
              /*тут доб сл код*/ 
            }
            arrBadSubst = [];
          }
          //проверяем на наличие null items удаляем где есть
          let nums = [];
          for(var i=0; i<this.items; i++) {
            if(this.items[i]===null) {
              nums.push(i);
            }
          }
          for(var i=0; i<nums.length; i++) {
            this.items.remove(nums[i]);
          }
          //инкрементируем nowRandomTime
          if (nowRandomTime != -1) {
            nowRandomTime += 20;
            this.nowTime +=20;
          }
        }
      }, 20);
    },

//Компонент который пытаюсь создать:
<template>
  <div
    @mousedown="shoot($event.currentTarget)"
    :class="item.cl"
    :style="item.style"
  >
    <div><img :src="item.linkImg" /></div>
  </div>
</template>

<script>
export default {
  props: ["item"],
  data() {
    return {
      isKill: false,
      isDie: false,
    };
  },

Ответы (0 шт):