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

Как очистить setTimeout?

Есть 3 слайдера, когда пользователь переключается на 2 слайд, то должен срабатывать setTimeout через 3 сек. С реализацией этой задачи проблем нет, но есть проблема в другом, после того как пользователь переключиться на след. слайд, таймер должен очищаться.
Вот как это условно реализовано
if (slide === 2) {
  setTimeout(() => какая-то логика, 3000)
} else {
  clearTimeout(удалить этот самый timeout)
}

В принципе код рабочий, просто хочеться избавить от ситуации когда, пользователь попадет на 2 слайд, запускается timeout, пользователь сразу перелистывает на любой другой слайд не дожидаясь реализации timeout'а и если быстрее чем пройдут 3 секунды он опять попадает на 2 слайд, то timeout может сработать сразу(а должен через 3сек).
Надеюсь более менее понятно объяснил)
  • Вопрос задан
  • 2642 просмотра
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 2
petermzg
@petermzg
Самый лучший программист
let timerId = setTimeout(...);
clearTimeout(timerId);
Ответ написан
Aetae
@Aetae Куратор тега JavaScript
Тлен
Если это реализовано именно так, то и работать оно должно как вам хочется.
Ответ написан
Ваш ответ на вопрос

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

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