2016-07-27 95 views
0

對於那些知道Javascript和IBM BPM的人,我需要知道如何延遲下面的觸發器的執行,由IBM BPM代碼this.context.trigger();表示。IBM BPM-Javascript觸發延遲

代碼實際上正在工作,除了我的代碼中未考慮的延遲。

你能幫我嗎? 非常感謝

var _this = this; 

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

myFunction(); 
+0

我相信你是誤以爲的setTimeout是同步的功能,如其他語言的睡眠,但在JavaScript的setTimeout是異步並調用它的第一個參數後的10000延遲讀我回答修復 – Bamieh

回答

2

我相信你誤以爲的setTimeout是同步的功能,如其他語言的睡眠,但在JavaScript的setTimeout是異步,並調用其第一個參數延遲10000後

您打電話myFunction以外,其中立即調用_this.context.trigger然後每10000一次。重寫你的函數到這個代碼才能工作。

function myFunction() { 
    this.context.trigger(); 
} 
setTimeout(myFunction.bind(this), 10000); 
+1

它工作,謝謝! – GGG

0

也許這可能是工作

var _this = this; 

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

setTimeout(myFunction, 10000); 
0

setTimeout不是sleep()函數。它在調用時不會暫停執行。它調度一個給定的回調,在超時後執行。正確的用法是:

function myFunction(){ 
    // Do something 
} 

setTimeout(myFunction, 1000) // Call myFunction in 1000 milliseconds