IBM BPM — задержка срабатывания Javascript

для тех, кто знаком с Javascript и IBM BPM, мне нужно знать, как отложить выполнение триггера ниже, представленного кодом IBM BPM this.context.trigger();.

Код на самом деле работает, за исключением задержки, которая не учитывается в моем коде.

Не могли бы вы мне помочь? Большое спасибо

var _this = this;

function myFunction() {
setTimeout(myFunction, 10000);
_this.context.trigger();
}

myFunction();

person GGG    schedule 27.07.2016    source источник
comment
я полагаю, вы ошибочно думаете, что setTimeout - это функция синхронизации, такая как сон на других языках, но в javascript setTimeout является асинхронным и вызывает свой первый параметр после задержки 10000. прочитайте мой ответ для исправления   -  person Bamieh    schedule 27.07.2016


Ответы (4)


Я полагаю, вы ошибочно думаете, что setTimeout — это функция синхронизации, как и сон в других языках, но в javascript setTimeout является асинхронным и вызывает свой первый параметр после задержки в 10000

вы звоните myFunction снаружи, который вызывает _this.context.trigger немедленно, а затем один раз каждые 10000. перепишите свою функцию в этот код, чтобы она работала.

function myFunction() {
   this.context.trigger();
}
setTimeout(myFunction.bind(this), 10000);
person Bamieh    schedule 27.07.2016

может это сработает

var _this = this;

function myFunction() {
    _this.context.trigger();
}

setTimeout(myFunction, 10000);
person ddb    schedule 27.07.2016

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

function myFunction(){
    // Do something
}

setTimeout(myFunction, 1000) // Call myFunction in 1000 milliseconds
person zero298    schedule 27.07.2016

В IBM BPM, если вы хотите установить спящий режим, попробуйте приведенный ниже код непосредственно в блоке сценария сервера.

java.lang.Thread.sleep(milliseconds); (or)

java.lang.Thread.currentThread().sleep(milliseconds);
person BharathwajRK    schedule 22.08.2018