Trying to stop unknown timer

Я был уверен, что по выстрелу таймаута или явному гашению тикера движок это делает сам. Оно было бы логично и понятно, не-се па?

По конкретике - я держу глобальный массив таймеров, часть запущена, часть нет, в изрядном количестве случаев таймер надо прибить до его выстрела (время заранее не известно). Ориентируюсь, согласно доке, на целоположительный хендл, другой-то инфы, кроме него и факта выстрела, нету.

Здравствуйте! Дело в том, что после срабатывания таймера его ID не изменяется. Чтобы понять, было ли срабатывание, надо в функцию-обработчик таймера явно добавить присвоение переменной с ID значения, например, null. Иначе нельзя будет понять, срабатывал таймер или нет.

Здравствуйте! Я и пытаюсь понять, это баг или фича, поскольку уловить логику никак не могу. Хорошо бы объяснить, а не повторять. :slight_smile:
Если таймер срабатывал, колбек должен был быть вызван, это как бы и есть функция таймера, Вы не находите?
Для того же, чтоб изнутри колбека почистить ид таймера, неплохо бы его знать, а параметры в колбек не передаются. Или предлагается для каждого таймера писать свой? У меня десятки таймеров и некоторые надо гасить до срабатывания.

Думаю этот вопрос больше к языку Java Script. Точно такое же поведение наблюдается в node.js и в браузере: после срабатывания таймера или выполнения для него функции clearTimeout(timerID) сам timerID не изменяется. Отличие только в том, что в wb-rules появляется пугающее предупреждение “ERROR: Trying to stop unknown timer”.

При чем тут язык-то? Конкретно дуктейп? Тык поправить можно же.
Я просто не представляю, кому может потребоваться хендл отработавшего таймера.

wb-rules будет рефакториться, это тоже учтем.

Добрый день, нашел источник проблем. Оцените пожалуйста

При открывании и закрывании штор появляется Trying to stop unknown timer. На другом котнроллере с теми же правилами javascript подобной проблемы не было.

ПРимерно на 128 ошибке wb-rules отваливается.

Скрипты ниже:
DraperySecond.js (1.1 КБ)
DraperyFirst.js (1.1 КБ)

1 лайк

Здравствуйте! Запакуйте, пожалуйста, файлы правил в архив и пришлите - файлы js нет возможности скачать.

Какой статус у сервиса wb-rules после того, как он “отваливается”? Есть ли еще какие-либо ошибки в логах? Какая версия пакета wb-rules установлена на обоих контроллерах?

Для воспроизведения проблемы опишите, пожалуйста, какими сигналами и в какой последовательности управляете шторами? Какие модули подключены к контроллеру (внутренние, боковые и внешние)? Пришлите, пожалуйста, архив с диагностической информацией при возникновении проблемы (используйте кнопку Collect diagnostic data на странице Settings->System)

1 лайк