对于那些了解Javascript和IBM BPM的人,我需要知道如何延迟下面的触发器执行,由IBM BPM代码this.context.trigger();。
表示。代码实际上正在工作,除了我的代码中没有考虑的延迟。
你能帮帮我吗? 非常感谢var _this = this;
function myFunction() {
setTimeout(myFunction, 10000);
_this.context.trigger();
}
myFunction();
答案 0 :(得分:3)
我相信你错误地认为setTimeout是一个同步函数,就像在其他语言中睡眠一样,但在javascript中setTimeout是Async并在延迟10000之后调用它的第一个参数
您在myFunction
之外呼叫_this.context.trigger
,然后立即拨打10000
function myFunction() {
this.context.trigger();
}
setTimeout(myFunction.bind(this), 10000);
。将您的函数重写为此代码以便工作。
string path = Server.MapPath("~/Content/" + excelfile.FileName);
答案 1 :(得分:0)
也许这可以起作用
var _this = this;
function myFunction() {
_this.context.trigger();
}
setTimeout(myFunction, 10000);
答案 2 :(得分:0)
setTimeout
不是sleep()
函数。无论何时调用它都不会暂停执行。它会调度在超时后执行的给定回调。正确的用法是:
function myFunction(){
// Do something
}
setTimeout(myFunction, 1000) // Call myFunction in 1000 milliseconds
答案 3 :(得分:0)
如果要设置睡眠状态,请在IBM BPM中直接在服务器脚本块中尝试以下代码。
java.lang.Thread.sleep(milliseconds); (or)
java.lang.Thread.currentThread().sleep(milliseconds);