Cliques múltiplos em um botão para iniciar um timer em JavaScript
O código que mostrei acima, na verdade, tem um problema. Esse problema se manifesta no caso de vários cliques no nosso botão. Nesse caso, cada clique levará ao início de um novo timer.
Ou seja, por exemplo, três cliques no botão levarão à inicialização de três timers, e cada um desses timers exibirá o valor do contador no console. Isso significa que os valores mudarão três vezes mais rápido!
Para resolver o problema descrito, basta fazer com que um clique repetido no botão não inicie um novo timer. Por exemplo, é possível, após o início do timer, desvincular da botão o manipulador de clique associado:
let start = document.querySelector('#start');
start.addEventListener('click', function func() {
let i = 0;
setInterval(function() {
console.log(++i);
}, 1000);
this.removeEventListener('click', func); // desvinculamos o manipulador
});
Pegue a sua solução da tarefa anterior. Verifique se cliques múltiplos no botão levam a uma contagem acelerada. Corrija esse problema.