У меня есть 2 таймера, которые я хочу запустить отдельно. «таймер» связан с первой функцией «timePassed» и должен считать до тех пор, пока жизненные характеристики моего существа не упадут до 0, после чего он должен остановиться. Оно делает. Однако мой второй таймер «timer2» связан со второй функцией «restart». Это не останавливается, когда статистика достигает 0, чего я хочу. Так же, как первый.
Я подозреваю, что это может быть связано с моим запуском «timePassed» (функция 1) в функции «перезагрузка» 2. Я чувствую, что таймер работает слишком быстро для интервалов в 1 секунду, так что это еще одна подсказка. Но я не уверен, так как я новичок во всем этом. В принципе, как я могу остановить «таймер2», как только статистика достигнет 0?
//first function that works fine
function timePassed(){
message();
screen();
i++;
answer();
decrease();
changeStar();
changeDonut();
changeHeart();
if (health === 0 || happiness === 0 || hunger === 0){
dodo();
clearInterval(timer);
}
}var timer= setInterval(timePassed, 1000);
//second function whose timer isn't working correctly
function restart() {
i=0;
message();
health = 4;
happiness = 4;
hunger = 4;
screen();
timePassed();
if (health === 0 || happiness === 0 || hunger === 0){
dodo();
clearInterval(timer2);
}
} var timer2 = setInterval(timePassed, 1000);
Я попытался назначить var timer2 как для timePassed() (как показано), так и для restart(). Если я использую перезагрузку(), мой счетчик подпрыгивает вверх и вниз, никогда не уменьшаясь настолько, чтобы вызвать clearInterval.
Если я удалю оператор «if» из перезагрузки() и/или timer2, перезагрузка() просто останется без обратного отсчета.