Daugkartis mygtuko paspaudimas laikmačio paleidimui JavaScript

Aukščiau pateiktas kodas iš tikrųjų turi tam tikrą problemą. Ši problema pasireiškia tuo atveju, jei mūsų mygtukas yra paspaustas kelis kartus. Tokiu atveju kiekvienas paspaudimas paleis naują laikmatį.

Tai yra, pavyzdžiui, trys mygtuko paspaudimai sukels tai, kad bus paleisti trys laikmačiai, ir kiekvienas iš šių laikmačių išves skaitiklio reikšmę į konsolę. Tai reiškia, kad reikšmės keisis tris kartus greičiau!

Norint išspręsti aprašytą problemą, tiesiog reikia padaryti taip, kad pakartotinis mygtuko paspaudimas neleistų naujo laikmačio. Pavyzdžiui, galima po laikmačio paleidimo atjungti nuo mygtuko susietą paspaudimo apdorojimo funkciją:

javascriptlet start = document.querySelector('#start');

start.addEventListener('click', function func() {
  let i = 0;
  
  setInterval(function() {
    console.log(++i);
  }, 1000);
  
  this.removeEventListener('click', func); // atjungiame apdorojimo funkciją
});
Задание 1

Paimkite savo ankstesnės užduoties sprendimą. Patikrinkite, ar daugkartis mygtuko paspaudimas sukelia skaičiavimo pagreitėjimą. Išspręskite šią problemą.