1
resposta

Dúvida sobre IntervaloId

Até então, meu código funcionou, porém não entendi a função da variável let intervaloId = null

Poderiam explicar melhor qual é o objetivo dela no código?

let tempoDecorridoEmSegundos =  5
let intervaloId = null

const audioPlay = new Audio('sons/play.wav')
const audioPause = new Audio('sons/pause.mp3')
const audioFim = new Audio('sons/beep.mp3')

StartPause.addEventListener('click', iniciarPausar)

function contagemRegressiva() {
    if (tempoDecorridoEmSegundos <= 0) {
        audioFim.play()
        alert('Tempo finalizado')
        zerar()
        return
    }
    tempoDecorridoEmSegundos -= 1

    console.log('Tempo' + tempoDecorridoEmSegundos)
}

function iniciarPausar() {
    if(intervaloId) {
        audioPause.play()
        zerar()
        return
    }
    audioPlay.play()
    intervaloId = setInterval(contagemRegressiva, 1000)

    console.log('intervaloId' + intervaloId)
}

function zerar() {
    clearInterval(intervaloId)
    intervaloId =  null
}
1 resposta

Olá, Amanda. Tudo bem?

A variável intervaloId ajuda a função iniciarPausar() a saber se o temporizador está ou não em execução quando o botão foi clicado para iniciar. A execução do código fica assim:

  • A função contagemRegressiva é responsável por fazer a contagem regressiva do temporizador. Ela verifica se o valor de temporizadorSegundos é menor ou igual a zero. Se for, significa que o tempo chegou a zero ou ficou negativo. Nesse caso, o áudio de tempo finalizado é reproduzido, um alerta é exibido, a função zerar() é chamada para interromper o temporizador e, por fim, a função retorna.

  • A função inicio é chamada quando o botão de start/pause é clicado. Ela verifica se a variável intervaloId possui algum valor. Se tiver, significa que o temporizador está em execução e o botão foi clicado para pausar. Nesse caso, o áudio de pausa é reproduzido, a função zerar() é chamada para interromper o temporizador e, em seguida, a função retorna.

  • Se a variável intervaloId não tiver valor (null), significa que o temporizador não está em execução e o botão foi clicado para iniciar. Nesse caso, o áudio de play é reproduzido, a função setInterval é chamada para iniciar a contagem regressiva a cada 1 segundo e o valor de intervaloId é atualizado com o identificador retornado por setInterval.

  • A função zerar é responsável por interromper a execução do temporizador. Ela utiliza a função clearInterval para cancelar o intervalo de execução definido por intervaloId e, em seguida, define o valor de intervaloId como null.

Espero ter ajudado!

Siga firme nos seus estudos e conte com o fórum sempre que precisar!

Abraços :)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado