Страница 1 из 2
Запуск метода по таймеру из метода
Добавлено: Ср фев 24, 2021 10:19 am
Virtual__
Народ подскажите как сделать запуск метода по таймеру из метода
Создаю новый класс, в нем метод, в котором по некоторым условиям должен запуститься таймер который повторно вызовет этот же метод.
и что-то вызов метода не срабатывает. Делаю так:
SetTimeOut('tst_timer', 'callMethod("SetOpenTime");', 5); и нечего не происходит.
SetTimeOut('tst_timer', '$this->callMethod("SetOpenTime");', 5); так тож не работает
Если вместо метода вызываю скрипт то скрипт запускается
SetTimeOut("title",'runScript("SendPkt");', 5);
что я делаю не так?
А нужно мне все это для повторной установки свойств, в случае не прихода подтверждения ...
Re: Запуск метода по таймеру из метода
Добавлено: Ср фев 24, 2021 10:32 am
SmoKE_xDDD
Virtual__ писал(а): Ср фев 24, 2021 10:19 am
Народ подскажите как сделать запуск метода по таймеру из метода
Создаю новый класс, в нем метод, в котором по некоторым условиям должен запуститься таймер который повторно вызовет этот же метод.
и что-то вызов метода не срабатывает. Делаю так:
SetTimeOut('tst_timer', 'callMethod("SetOpenTime");', 5); и нечего не происходит.
SetTimeOut('tst_timer', '$this->callMethod("SetOpenTime");', 5); так тож не работает
Если вместо метода вызываю скрипт то скрипт запускается
SetTimeOut("title",'runScript("SendPkt");', 5);
что я делаю не так?
А нужно мне все это для повторной установки свойств, в случае не прихода подтверждения ...
Имя метода указывается как Объект.Метод
Re: Запуск метода по таймеру из метода
Добавлено: Ср фев 24, 2021 10:42 am
Virtual__
Дык я же создаю обработчик метода в классе, я не могу указать объект. Объектов потом несколько будет.
Re: Запуск метода по таймеру из метода
Добавлено: Ср фев 24, 2021 10:47 am
Chainik
Попробуйте в 2 строки:
Код: Выделить всё
$ot = $this->object_title;
SetTimeOut('tst_timer', 'callMethod($ot.".SetOpenTime");', 5);
Re: Запуск метода по таймеру из метода
Добавлено: Ср фев 24, 2021 10:56 am
Virtual__
Chainik писал(а): Ср фев 24, 2021 10:47 am
Попробуйте в 2 строки:
Код: Выделить всё
$ot = $this->object_title;
SetTimeOut('tst_timer', 'callMethod($ot.".SetOpenTime");', 5);
Нет не работает

А в этом выражении $ot.".SetOpenTime" случайно одна точка не лишняя?
Re: Запуск метода по таймеру из метода
Добавлено: Ср фев 24, 2021 11:03 am
Chainik
Точка не лишняя. Вообще, должно работать.
У вас часом имя таймера 'tst_timer' еще где-нибудь не используется?
Ну можно вид кавычек поменять (так, на всякий случай).
Код: Выделить всё
$ot = $this->object_title;
SetTimeOut("tst_timer", "callMethod($ot.'.SetOpenTime');", 5);
Re: Запуск метода по таймеру из метода
Добавлено: Ср фев 24, 2021 11:16 am
Virtual__
Chainik писал(а): Ср фев 24, 2021 11:03 am
Точка не лишняя. Вообще, должно работать.
У вас часом имя таймера 'tst_timer' еще где-нибудь не используется?
Ну можно вид кавычек поменять (так, на всякий случай).
Код: Выделить всё
$ot = $this->object_title;
SetTimeOut("tst_timer", "callMethod($ot.'.SetOpenTime');", 5);
Имя пробовал менять не помогает, да и кавычки то-же разные пробовал - не работает

Главное не понятно куда копать

Re: Запуск метода по таймеру из метода
Добавлено: Ср фев 24, 2021 11:19 am
Chainik
Вот так попробуйте запустить. Посмотрите, что в лог Алисы пишет.
Код: Выделить всё
$ot = $this->object_title;
say("будет запущен таймер_".time());
SetTimeOut("tst_timer", "say('запущен таймер_'.time()); callMethod($ot.'.SetOpenTime');", 5);
Re: Запуск метода по таймеру из метода
Добавлено: Ср фев 24, 2021 11:32 am
Virtual__
Chainik писал(а): Ср фев 24, 2021 11:19 am
Вот так попробуйте запустить. Посмотрите, что в лог Алисы пишет.
Код: Выделить всё
$ot = $this->object_title;
say("будет запущен таймер_".time());
SetTimeOut("tst_timer", "say('запущен таймер_'.time()); callMethod($ot.'.SetOpenTime');", 5);
Сообщение о том что будет запущен появляется, а о том что запущен не появляется.
А если вызов метода выкусить, то сообщение о том что запущен появляется ... Вобщем вызов метода похоже не дает запуститься таймеру.
Re: Запуск метода по таймеру из метода
Добавлено: Ср фев 24, 2021 11:39 am
SmoKE_xDDD
Охххх.....
Код: Выделить всё
SetTimeOut("tst_timer", "callMethod($this->object_title.'.SetOpenTime');", 5);
В иксрее появляется таймер?