#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
}
}