JavaScript-те кнопканы бірнеше рет басу арқылы таймерді іске қосу
Мен жоғарыда келтірген код іс жүзінде белгілі бір мәселеге ие. Бұл мәселе біздің түймені бірнеше рет басқанда пайда болады. Бұл жағдайда әрбір басу жаңа таймерді іске қосады.
Яғни, мысалы, түймені үш рет басу үш таймердің іске қосылуына әкеп соғады, және осы таймерлердің әрқайсысы есептегіштің мәнін консольге шығарады. Бұл мәндердің үш есе тез өзгеретінін білдіреді!
Сипатталған мәселені шешу үшін жай ғана түймені қайта басу жаңа таймерді іске қоспауы үшін жасау керек. Мысалы, таймерді іске қосқаннан кейін түймеге байланыстырылған түймебасу өңдегішін ажыратуға болады:
let start = document.querySelector('#start');
start.addEventListener('click', function func() {
let i = 0;
setInterval(function() {
console.log(++i);
}, 1000);
this.removeEventListener('click', func); // өңдегішті ажыратамыз
});
Алдыңғы тапсырманың шешіміңізді алыңыз. Түймені бірнеше рет басу есептеуді жеделдететінін тексеріңіз. Бұл мәселені түзетіңіз.