@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)

}
  • Вопрос задан
  • 116 просмотров
Решения вопроса 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
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
27 нояб. 2024, в 13:07
10000 руб./за проект
27 нояб. 2024, в 12:53
70000 руб./за проект
27 нояб. 2024, в 12:50
25000 руб./за проект