Угловой цикл по изображениям

#javascript #angular #typescript

#javascript #угловой #typescript

Вопрос:

Я пытаюсь постоянно перебирать массив, обновлять значения в нем, и когда достигается длина массива, начинать цикл заново. В настоящее время он предотвращает загрузку страницы из-за загрузки и ведет утешительную регистрацию намного быстрее, чем должен позволять тайм-аут. Как я могу остановить цикл от предотвращения загрузки страницы?

 
  public imgArray: Array<boolean> = [true, false, false, false]

  ngOnInit() {

    this.imgCycle();
  }



  imgCycle() {
    let i = 0;
    while (true) {
      setTimeout(function () { this.imgArray[i] = true }, 10000);
      console.log(this.imgArray)
      if (i == this.imgArray.length) {
        i = 0
        continue;
      }
      i  
    }

  }
  

Ответ №1:

Значение true почти никогда не является правильным вариантом. Возможно, вы хотите взглянуть на setInterval()? Это будет выполняться время от времени, но все равно может выполняться несколько раз в секунду. Суть в том, что в какой-то момент вы должны дать браузеру время сделать все остальное. (пожалуйста, извините, если я что-то упустил. У меня нет большого опыта в Angular2)

 public imgArray: Array<boolean> = [true, false, false, false]

    let counter = 0;
    ngOnInit() {
       setInterval(imgCycle, 10000)
    }


    imgCycle() {
            this.imgArray[counter] = true;
            if (counter == this.imgArray.length) {
                counter = 0
                continue;
            }
            counter  
        }

    }