对于那些了解 Javascript 和 IBM BPM 的人,我需要知道如何延迟执行下面的触发器,由 IBM BPM 代码 this.context.trigger(); 表示。
该代码实际上正在工作,除了我的代码中未考虑的延迟。
你能帮我么?非常感谢
var _this = this;
function myFunction() {
setTimeout(myFunction, 10000);
_this.context.trigger();
}
myFunction();
对于那些了解 Javascript 和 IBM BPM 的人,我需要知道如何延迟执行下面的触发器,由 IBM BPM 代码 this.context.trigger(); 表示。
该代码实际上正在工作,除了我的代码中未考虑的延迟。
你能帮我么?非常感谢
var _this = this;
function myFunction() {
setTimeout(myFunction, 10000);
_this.context.trigger();
}
myFunction();
我相信你误以为setTimeout是一个同步函数,就像其他语言的sleep一样,但是在javascript中setTimeout是Async并且在延迟10000之后调用它的第一个参数
你在myFunction
外面打电话_this.context.trigger
,然后立即打电话一次10000
。将您的函数重写为此代码以便工作。
function myFunction() {
this.context.trigger();
}
setTimeout(myFunction.bind(this), 10000);
也许这可以工作
var _this = this;
function myFunction() {
_this.context.trigger();
}
setTimeout(myFunction, 10000);
setTimeout
不是sleep()
函数。每当调用它时,它都不会暂停执行。它安排给定的回调在超时后执行。正确的用法是:
function myFunction(){
// Do something
}
setTimeout(myFunction, 1000) // Call myFunction in 1000 milliseconds
如果您想在 IBM BPM 中设置睡眠,请直接在服务器脚本块中尝试以下代码。
java.lang.Thread.sleep(milliseconds); (or)
java.lang.Thread.currentThread().sleep(milliseconds);