por que o zerar() vai para baixo do alert('Tempo finalizado!')?
o temporizador não deveria zerar primeiro para depois exibir o alert() na tela?
quais as possíveis inconsistências em ambos os casos? com o zerar() antes ou após o alert()
por que o zerar() vai para baixo do alert('Tempo finalizado!')?
o temporizador não deveria zerar primeiro para depois exibir o alert() na tela?
quais as possíveis inconsistências em ambos os casos? com o zerar() antes ou após o alert()
Oii Ketrin, tudo bem?
No JavaScript, a função alert()
é uma função síncrona, o que significa que ela bloqueia a execução do código até que o usuário feche a janela de alerta. Isso quer dizer que qualquer código após o alert()
não será executado até que o alerta seja fechado.
O trecho de código que você mencionou:
const contagemRegressiva = () => {
if(tempoDecorridoEmSegundos <= 0){
// audioTempoFinalizado.play()
alert('Tempo finalizado!')
zerar()
return
}
tempoDecorridoEmSegundos -= 1
console.log('Temporizador: ' + tempoDecorridoEmSegundos)
}
Quando o alert('Tempo finalizado!')
é chamado, ele exibe a mensagem e espera o usuário interagir com o alerta (clicando em "OK", por exemplo). Somente após essa interação, a função zerar()
será executada.
Com zerar()
antes do alert()
:
alert()
será exibido depois. Isso pode ser mais intuitivo, pois o temporizador é redefinido antes de notificar o usuário.Com alert()
antes do zerar()
:
Depende do comportamento desejado. Se a prioridade é garantir que o temporizador seja zerado imediatamente, coloque zerar()
antes do alert()
. Se a prioridade é notificar o usuário antes de qualquer outra ação, mantenha o alert()
antes do zerar()
.
Um abraço e bons estudos.