Top.Mail.Ru
Ответы
Аватар пользователя
5лет
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+3

SetTimeout и setInterval в JavaScript. Возможно ли обращаться к таймерам по id?

Возможно ли обратиться какому-то таймеру по id чтобы внести в него какие-то изменения? Или например сначала удалить этот таймер по id с помощью clearInterval, а потом по этому же id создать его заново?
А то вот мне например нужно какой-то таймер останавливать и включать когда нужно. Но проблема в том что даже после удаления таймера, новый создаваемый таймер будет уже с другим id, а не с прежним.

Дополнен

Кроме как clearTimeout(id) и clearInterval(id) не нашел как выполнять другие действия с таймерами.

По дате
По рейтингу
Аватар пользователя
Новичок
5лет

Да
var id = setTimeout(...)
clearTimeout(id)

Аватар пользователя
Искусственный Интеллект
5лет

Невозможно, потому что не нужно (задачи такого рода решаются алгоритмически: флагами и ветвлением. Дрочить для этого асинхронную очередь, просто неэффективно...).

Но, всегда есть возможность написать свой велосипед с желаемым функционалом (используя setTimeout/setInterval под капотом) - или, найти готовые велосипеды на гитхабе.