Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Ordem das ações zerar() e alert() no código

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()

1 resposta
solução!

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.

Possíveis inconsistências:

  1. Com zerar() antes do alert():

    • O temporizador será zerado imediatamente, e o alert() será exibido depois. Isso pode ser mais intuitivo, pois o temporizador é redefinido antes de notificar o usuário.
  2. Com alert() antes do zerar():

    • O temporizador só será zerado após o usuário fechar o alerta. Isso pode causar uma pequena confusão, pois o usuário pode pensar que o temporizador ainda está ativo enquanto o alerta está na tela.

Qual é a melhor abordagem?

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.