Задать вопрос
@YakovSpb

Как перезапускать таймер в setTimeout?

Нужно, чтобы при запуске функции startLeaveTimer, запускался таймер, а при повторном запуске функции таймер обнулялся и заново запускался.

const startLeaveTimer = (users: any): void=>{

  const callUsersCount = users.length;

  const timeLeaveSeconds = timeLeave.leaveRoom * 5000

  let leaveTimer = setTimeout(() => {
      if (callUsersCount < 2) {
        alert('hey')
      }
    }, timeLeaveSeconds)

}
  • Вопрос задан
  • 118 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 2
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
let leaveTimer;

const startLeaveTimer = (users: any): void=>{
  const callUsersCount = users.length;
  const timeLeaveSeconds = timeLeave.leaveRoom * 5000

  clearTimeout(leaveTimer);

  leaveTimer = setTimeout(() => {
      if (callUsersCount < 2) {
        alert('hey')
      }
    }, timeLeaveSeconds)
}
Ответ написан
Комментировать
Fragster
@Fragster
помогло? отметь решением!
Если нужно не для саморазвития или тестового задания, а для продакшена, то я бы взял какой-нибудь готовый debounce, например из lodash
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы