Пауза работает некорректно. Как исправить?

#javascript

#javascript

Вопрос:

У меня есть код, который должен реализовать секундомер. Это работает, но если я запускаю секундомер после нажатия кнопки паузы или сброса, то время тикает слишком быстро. Как я могу это исправить?

Решено.

Комментарии:

1. Вам нужно опубликовать код в вашем вопросе. Сообщение об ошибке, которого вы избежали, в основном сообщило вам об этом.

2. О, прошу прощения. Я думал, что это не подойдет. Это мой 2-й день обучения

3. clearInterval(main) не имеет смысла. main это функция, а не возвращаемый интервал таймера setInterval() .

Ответ №1:

Вот урезанный пример того, как можно сохранить идентификатор интервала, а затем использовать его для очистки интервала:

 let SECONDS = 0;
let intervalId;

function run() {
  intervalId = setInterval(main, 1000)
}

function pause() {
  clearInterval(intervalId)
}

function reset() {
  clearInterval(intervalId)
  SECONDS = 0
  update_display()
}

function update_display() {
  document.getElementById("seconds").innerText = SECONDS
}

function main() {
  SECONDS  
  update_display()
}  
     <div class="display-time">
      <span id="seconds">0</span>
    </div>

    <!-- buttons start, stop and reset -->
    <div class="button-group">
      <button id="btnRun" onclick="run()">RUN</button>
      <button id="btnPause" onclick="pause()">PAUSE</button>
      <button id="btnReset" onclick="reset()">RESET</button>
    </div>