Этот код должен работать в течение 10 секунд до окончания, однако, если вы снова запустить функцию перед 10 секунд закончится, он должен очистить theTimeout и начать 10 секунд сноваclearTimeout не работает при вызове, если заявление
function start() {
let counter = 0;
let timeUp = true;
let hello;
setInterval(()=> {
counter++
console.log(counter)
},1000);
if (timeUp == false) {
clearTimeout(hello)
timeUp = true
console.log('should run again with new clock')
start()
} else {
console.log('new clock started')
timeUp = false;
hello = setTimeout(() => {
timeUp = true
console.log('end clock')
}, 10000);
};
};
Это не достичь того, что ОП спросил. Два вызова 'myTimer.start' не сбрасывают таймер. – bejado
@bejado True. Я сделал редактирование, чтобы вы могли запустить его несколько раз. – blex