Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] null javascript

Na função abaixo a const 'intervaloId' recebe 'null. Porém no console ao clicar no botão start e clicar`` novamente, é possível ver que ele pausa o decremento e depois continua onde parou. Mas a variável não recebeu valor null? Como pode continuar de onde parou o decremento?

const startPauseBt = document.querySelector('#start-pause')
const musicaFocoInput = document.querySelector('#alternar-musica')
const musica = new Audio('/sons/luna-rise-part-one.mp3')
musica.loop = true

const contagemRegressiva = () => {
    if(tempoDecorridoEmSegundos <= 0){
        zerar()
        alert('Tempo finalizado!')
        return 
    }
    tempoDecorridoEmSegundos -= 1
    console.log('temporizador: ' + tempoDecorridoEmSegundos)
}

startPauseBt.addEventListener('click', iniciar)

function iniciar() {
    if(intervaloId){
        zerar()
        return
    }
    intervaloId = setInterval(contagemRegressiva, 1000)
    
    function zerar(){
    clearInterval(intervaloId)
    intervaloId = null
}
2 respostas
solução!

Boa tarde Jeferson,

A informação que é mostrada no console é da variável tempoDecorridoEmSegundos, a intervaloId é a variável em que é definido o setInterval, e na função zerar é atribuído o valor null, pois quando clicar no botão de novo a primeira coisa que a função iniciar faz é verificar se a variável intervaloId tem algum valor ou está nula.

O Null nesse caso é pra controlar na função iniciar se o usuário está pausando e portanto precisa parar o intervalo de continuar acontecendo, ou se está dando play, e assim iniciar o setInterval.

Espero que tenha dado pra entender. Pois relendo achei que possa ter ficado um pouco confuso porém não consegui explicar com outras palavras.

Abraço!

Deu sim. Obrigado!