0
Beantwoord

Циклическое повторение функции

Alexey Grishanin 6 jaar geleden in iRidium Script / Interface scripts bijgewerkt door Oksana (expert) 6 jaar geleden 2
Добрый день.
Поясните пожалуйста почему в следующем скрипте:

function byte1(val)
{
return val >>> 24
};

function ReadEvent(val)
{
IR.Log("Значение байта 1: "+ byte1(val));
};

function WriteLog ()
{
IR.Log("просто сообщение")
};

IR.AddListener(IR.EVENT_START,0,function()
{
IR.SetInterval(5000,WriteLog);
IR.SetInterval(5000,ReadEvent(1830317336));
});

функция ReadEvent  не работает циклично через каждые 5 сек.? В то время как WriteLog работает, т.е. код исполняется каждые 5 сек.
Under review
Hello,

The SetInterval method cannot take function activation as a parameter. Only a link to the function is sent to the method. Or, if you need to execute the function activation with a parameter, you need to wrap the activation inot the unnamed function. See the example:

IR.SetInterval(5000, function () {

ReadEvent(1830317336)
]);

or named:
function ReadEventCall(){

ReadEvent(1830317336)
}
IR.SetInterval(5000, ReadEventCall);


_______________________________________________________________________________________________________


Добрый день, Алексей!

Метод SetInterval не может принимать вызов функции как параметр. В метод передается только ссылка на функцию или же если требуется выполнить вызов функции с параметром, то надо обернуть вызов в не именованную функцию. См. пример:

IR.SetInterval(5000, function () {

    ReadEvent(1830317336)
]);

или именованную:
function ReadEventCall(){

     ReadEvent(1830317336)
}
IR.SetInterval(5000, ReadEventCall);