1

对于那些了解 Javascript 和 IBM BPM 的人,我需要知道如何延迟执行下面的触发器,由 IBM BPM 代码 this.context.trigger(); 表示。

该代码实际上正在工作,除了我的代码中未考虑的延迟。

你能帮我么?非常感谢

var _this = this;

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

myFunction();
4

4 回答 4

4

我相信你误以为setTimeout是一个同步函数,就像其他语言的sleep一样,但是在javascript中setTimeout是Async并且在延迟10000之后调用它的第一个参数

你在myFunction外面打电话_this.context.trigger,然后立即打电话一次10000。将您的函数重写为此代码以便工作。

function myFunction() {
   this.context.trigger();
}
setTimeout(myFunction.bind(this), 10000);
于 2016-07-27T13:44:04.237 回答
0

也许这可以工作

var _this = this;

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

setTimeout(myFunction, 10000);
于 2016-07-27T13:43:11.273 回答
0

setTimeout不是sleep()函数。每当调用它时,它都不会暂停执行。它安排给定的回调在超时后执行。正确的用法是:

function myFunction(){
    // Do something
}

setTimeout(myFunction, 1000) // Call myFunction in 1000 milliseconds
于 2016-07-27T13:46:05.690 回答
0

如果您想在 IBM BPM 中设置睡眠,请直接在服务器脚本块中尝试以下代码。

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

java.lang.Thread.currentThread().sleep(milliseconds);
于 2018-08-22T04:43:17.227 回答