2
respostas

function zerar() não está funcionando corretamente

Quando eu inicio o contador ele vai até o final, mas não volta para o valor inicial, já revisei o código algumas vezes e até agora não encontrei a solução

let temporizador = 5
let intervaloId = null


const contagemRegressiva = () => {
    if (temporizador <= 0){
        //somBeep.play();
        alert('Tempo finalizado!');
        zerar();
        return;
    }
    temporizador -= 1;
    mostrarTempo();
}

starPause.addEventListener('click', iniciarOuPausar);

function iniciarOuPausar() {
    if (intervaloId){
        somPause.play();
        zerar();
        return;
    }
    somPlay.play();
    intervaloId = setInterval(contagemRegressiva, 1000);
    iniciarOuPausarBT.textContent = 'Pausar';
}

function zerar() {
    clearInterval(intervaloId);
    iniciarOuPausarBT.textContent = 'Começar';
    intervaloId = null;
}

function mostrarTempo(){
    const tempo = temporizador;
    tempoNaTela.innerHTML = `${tempo}`
}
2 respostas

O problema parece estar na função zerar() que não está resetando o valor do temporizador para o valor inicial. Para corrigir isso, você pode adicionar a linha temporizador = 5; dentro da função zerar() para garantir que o contador seja reiniciado com o valor inicial sempre que a função for chamada. Veja a modificação abaixo:

function zerar() {
    clearInterval(intervaloId);
    iniciarOuPausarBT.textContent = 'Começar';
    intervaloId = null;
    temporizador = 5; // Adiciona esta linha para reiniciar o contador
    mostrarTempo(); // Atualiza a exibição do tempo na tela
}

Adicionando essa linha, o contador será reiniciado para o valor inicial toda vez que a função zerar() for chamada, garantindo que o ciclo possa ser repetido corretamente.

Funcionou!

Muito obrigado, já tinha revisado o código várias vezes e não tinha conseguido corrigir esse erro