Просто наткнулся на комментарий в этом очень старом вопросе относительно очистки всех setTimeouts.
Комментарий заинтриговал меня, так как фактически не затрагивает вопрос напрямую, но предлагает действительноИнтересное альтернативное решение проблемы слежения за несколькими таймерами, но, к сожалению, он не приводит пример того, как это можно реализовать:
Используйте глобальное время ожидания, из которого все ваши другие функции получают синхронизацию.Это заставит все работать быстрее и будет проще в управлении, хотя и добавит некоторую абстракцию в ваш код ...
... Я просто имел в виду, что у вас один глобальный таймаут запускается каждые 50 мс.Любая другая функция, которая потребовала бы элемент синхронизации, затем извлекала бы его из глобального тайм-аута.Google переключился на это для эффективности, хотя я больше не могу найти статью, цитирующую это.
Как можно было бы установить, как я полагаю, именованный таймер в глобальном пространстве, а затем сослаться на него в другом месте внесколько случаев?
Например, если бы у нас было что-то подобное в глобальном пространстве:
let myGlobalTimer = setTimeout(function(){ myFunc(); }, 50);
Это будет работать только myFunc
каждые 50 мс.
Я почти уверен, что вы не можете передавать имена динамических функций в setTimeout
, так как же этого добиться?