LINUX.ORG.RU

setTimeout без очереди и с превыполнением

 


0

1

setTimeout(func, 5000) запускает func спустя 5 секунд, если за это время еще раз десять вызвать setTimeout, то все эти события будут выполняться по очереди с разницей в пять секунд.

Как сделать во первых так, что бы очереди небыло, а во вторых, что бы сначала выполнялся func, а потом уже устанавливался таймаут.


По пункту номер два, очевидно func(); setTimeout(func, 5000). Но по факту ты видимо не понимаешь чего хочешь или как это сделать. Таймаут не блокирует выполнение.

zz ★★★★
()

потом уже устанавливался таймаут

Таймаут до чего?

x3al ★★★★★
()

Чтобы очереди не было можно хранить id который тебе вернет setTimeout и звать на нем clearTimeout перед тем как заного таймаутить.

zz ★★★★
()
Ответ на: комментарий от zz

Ок, расскажу что делаю: есть карта (leaflet), на которой есть обработчик события moveend, который запускается при любой активности на карте (зум, перетаскивание, клики и пр.). В обработичике запускается функция func, которая обновляет маркеры на карте. Необходимо что бы при чрезмерной активности пользователя func запускалась не сходу, а с промежутками.

tr0ll
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.