Задать вопрос
@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)

}
  • Вопрос задан
  • 122 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 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
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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