У меня есть 2 таймера, которые я хочу запустить отдельно. 'timer' связан с первой функцией 'timePassed' и должен считать до тех пор, пока жизненные характеристики моего существа go не уменьшатся до 0, после чего он должен остановиться. Оно делает. Тем не менее, мой второй таймер 'timer2' связан со второй функцией 'restart'. Он не останавливается, когда статистика достигает 0, чего я хочу. Прямо как первый.
Я подозреваю, что это может быть связано с моим запуском timePassed (функция 1) в функции 2 restart. Я чувствую, что таймер работает слишком быстро с интервалом в 1 секунду, так что это еще одна подсказка. Но я не уверен, так как я новичок во всем этом. В основном, как я могу остановить 'timer2', как только статистика достигнет 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 (). Если я использую restart (), мой счетчик отскакивает вверх и вниз, никогда не уменьшаясь настолько, чтобы вызвать clearInterval.
Если я удаляю оператор if из restart () и / или timer2, restart () просто сидит и не обратный отсчет.