Запуск метода по таймеру из метода

Если вы только начинаете осваивать систему MajorDoMo и чего-то не знаете или не можете понять, то задавайте свои вопросы в этой ветке.

Модератор: immortal

Virtual__
Сообщения: 8
Зарегистрирован: Ср фев 24, 2021 10:06 am
Благодарил (а): 0
Поблагодарили: 0

Запуск метода по таймеру из метода

Сообщение Virtual__ » Ср фев 24, 2021 10:19 am

Народ подскажите как сделать запуск метода по таймеру из метода

Создаю новый класс, в нем метод, в котором по некоторым условиям должен запуститься таймер который повторно вызовет этот же метод.
и что-то вызов метода не срабатывает. Делаю так:
SetTimeOut('tst_timer', 'callMethod("SetOpenTime");', 5); и нечего не происходит.
SetTimeOut('tst_timer', '$this->callMethod("SetOpenTime");', 5); так тож не работает

Если вместо метода вызываю скрипт то скрипт запускается
SetTimeOut("title",'runScript("SendPkt");', 5);

что я делаю не так?

А нужно мне все это для повторной установки свойств, в случае не прихода подтверждения ...
Аватара пользователя
SmoKE_xDDD
Сообщения: 816
Зарегистрирован: Ср апр 17, 2019 5:00 pm
Откуда: Нижний Новгород
Благодарил (а): 110 раз
Поблагодарили: 898 раз

Re: Запуск метода по таймеру из метода

Сообщение SmoKE_xDDD » Ср фев 24, 2021 10:32 am

Virtual__ писал(а):
Ср фев 24, 2021 10:19 am
Народ подскажите как сделать запуск метода по таймеру из метода

Создаю новый класс, в нем метод, в котором по некоторым условиям должен запуститься таймер который повторно вызовет этот же метод.
и что-то вызов метода не срабатывает. Делаю так:
SetTimeOut('tst_timer', 'callMethod("SetOpenTime");', 5); и нечего не происходит.
SetTimeOut('tst_timer', '$this->callMethod("SetOpenTime");', 5); так тож не работает

Если вместо метода вызываю скрипт то скрипт запускается
SetTimeOut("title",'runScript("SendPkt");', 5);

что я делаю не так?

А нужно мне все это для повторной установки свойств, в случае не прихода подтверждения ...
Имя метода указывается как Объект.Метод
Virtual__
Сообщения: 8
Зарегистрирован: Ср фев 24, 2021 10:06 am
Благодарил (а): 0
Поблагодарили: 0

Re: Запуск метода по таймеру из метода

Сообщение Virtual__ » Ср фев 24, 2021 10:42 am

Дык я же создаю обработчик метода в классе, я не могу указать объект. Объектов потом несколько будет.
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Запуск метода по таймеру из метода

Сообщение Chainik » Ср фев 24, 2021 10:47 am

Попробуйте в 2 строки:

Код: Выделить всё

$ot = $this->object_title;
SetTimeOut('tst_timer', 'callMethod($ot.".SetOpenTime");', 5);
Virtual__
Сообщения: 8
Зарегистрирован: Ср фев 24, 2021 10:06 am
Благодарил (а): 0
Поблагодарили: 0

Re: Запуск метода по таймеру из метода

Сообщение Virtual__ » Ср фев 24, 2021 10:56 am

Chainik писал(а):
Ср фев 24, 2021 10:47 am
Попробуйте в 2 строки:

Код: Выделить всё

$ot = $this->object_title;
SetTimeOut('tst_timer', 'callMethod($ot.".SetOpenTime");', 5);
Нет не работает :( А в этом выражении $ot.".SetOpenTime" случайно одна точка не лишняя?
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Запуск метода по таймеру из метода

Сообщение Chainik » Ср фев 24, 2021 11:03 am

Точка не лишняя. Вообще, должно работать.
У вас часом имя таймера 'tst_timer' еще где-нибудь не используется?
Ну можно вид кавычек поменять (так, на всякий случай).

Код: Выделить всё

$ot = $this->object_title;
SetTimeOut("tst_timer", "callMethod($ot.'.SetOpenTime');", 5);
Virtual__
Сообщения: 8
Зарегистрирован: Ср фев 24, 2021 10:06 am
Благодарил (а): 0
Поблагодарили: 0

Re: Запуск метода по таймеру из метода

Сообщение Virtual__ » Ср фев 24, 2021 11:16 am

Chainik писал(а):
Ср фев 24, 2021 11:03 am
Точка не лишняя. Вообще, должно работать.
У вас часом имя таймера 'tst_timer' еще где-нибудь не используется?
Ну можно вид кавычек поменять (так, на всякий случай).

Код: Выделить всё

$ot = $this->object_title;
SetTimeOut("tst_timer", "callMethod($ot.'.SetOpenTime');", 5);
Имя пробовал менять не помогает, да и кавычки то-же разные пробовал - не работает :( Главное не понятно куда копать :(
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Запуск метода по таймеру из метода

Сообщение Chainik » Ср фев 24, 2021 11:19 am

Вот так попробуйте запустить. Посмотрите, что в лог Алисы пишет.

Код: Выделить всё

$ot = $this->object_title;
say("будет запущен таймер_".time());
SetTimeOut("tst_timer", "say('запущен таймер_'.time()); callMethod($ot.'.SetOpenTime');", 5);
Virtual__
Сообщения: 8
Зарегистрирован: Ср фев 24, 2021 10:06 am
Благодарил (а): 0
Поблагодарили: 0

Re: Запуск метода по таймеру из метода

Сообщение Virtual__ » Ср фев 24, 2021 11:32 am

Chainik писал(а):
Ср фев 24, 2021 11:19 am
Вот так попробуйте запустить. Посмотрите, что в лог Алисы пишет.

Код: Выделить всё

$ot = $this->object_title;
say("будет запущен таймер_".time());
SetTimeOut("tst_timer", "say('запущен таймер_'.time()); callMethod($ot.'.SetOpenTime');", 5);
Сообщение о том что будет запущен появляется, а о том что запущен не появляется.
А если вызов метода выкусить, то сообщение о том что запущен появляется ... Вобщем вызов метода похоже не дает запуститься таймеру.
Аватара пользователя
SmoKE_xDDD
Сообщения: 816
Зарегистрирован: Ср апр 17, 2019 5:00 pm
Откуда: Нижний Новгород
Благодарил (а): 110 раз
Поблагодарили: 898 раз

Re: Запуск метода по таймеру из метода

Сообщение SmoKE_xDDD » Ср фев 24, 2021 11:39 am

Охххх.....

Код: Выделить всё

SetTimeOut("tst_timer", "callMethod($this->object_title.'.SetOpenTime');", 5);

В иксрее появляется таймер?
Последний раз редактировалось SmoKE_xDDD Ср фев 24, 2021 11:41 am, всего редактировалось 1 раз.
Ответить