Eu sei que o objetivo do código é pausar a contagem e não zerá-la quando apertamos o botão para pausar, mas estou tentando entender o porquê disso acontecer.
Se a função iniciarOuPausar chama a função zerar, da seguinte forma:
if(intervaloId){
zerar()
return
}
intervaloId = setInterval(contagemRegressiva, 1000)
}
e a função zerar é a seguinte:
function zerar() {
clearInterval(intervaloId)
intervaloId = null
}
Eu não consigo entender por que está pausando em vez de zerar a contagem. Afinal, está puxando o clearInveral no intervaloId e redefinindo o intervaloId para null. Isso acontece toda vez que o botão é clicado, certo? Além disso, depois do if que chama o zerar() é redefinido novamente o setInterval pra 1000 (a menos que o return impeça essa parte do código de ser executada, não entendi essa parte muito bem), mas se isso explicar o acontecimento, por que a contagem não recomeça dos 5? E onde está sendo armazenado onde o temporizador parou? Ficou tudo mal explicado, honestamente. Alguém poderia me explicar e me ajudar a entender melhor esse comportamento?