我有),其中一種方法是定義了名爲myMethod的(一個JavaScript文件,在這個方法中,我通過使用Dojo的xhrGet方法和Dojo調用後異步獲取數據有下面這一些其他的代碼道場電話。如果Dojo調用成功,則調用success()方法。等待而道場的xhrGet方法返回的價值
var dataVal = null;
myMethod()
{
// Code1 - Before Dojo Call
Dojo.xhrGet(intoNodeWithLoadError(form, url, success, error)); // Dojo Call
// Code2 - After Dojo Call
}
success(data, xhr)
{
//dataVal = data;
//console.log("Success");
// Doing stuff
}
的問題是像執行成功方法之後,我想繼續從代碼2 Dojo.xhrGet即後的在myMethod的代碼執行流程。
我想繼續使用Dojo調用的方法成功返回後,「代碼2」。 現在,這個Dojo.xhrGet在另一個單獨的線程中完成它的工作,即使在等待成功/錯誤方法被調用之前,Code2也會立即執行。
所以,讓代碼2將成功一直被稱爲後才能執行的一種靜態等待被呼叫道場後需要。
,如果您有怎樣把靜態等待狀態在JavaScript,請提出任何想法。
你需要把碼2在'xhrGet'的'load'觸發這樣'dojo.xhrGet({網址:網址,負載:函數(){代碼2}}) '。 [閱讀文檔的更多信息](http://dojotoolkit.org/documentation/tutorials/1.6/ajax/) –
我非常期待這個答案。但是讓我告訴你,它的一個大項目和這個方法正在被其他許多文件使用,並且這個myMethod()函數返回值爲被調用的方法。所以如果我們這樣做,那麼從負載無法返回值調用myMethod()的方法。所以我只想把等待條件。我們怎麼做到這一點?任何好主意? –
如果你只想把延遲到您的代碼,然後嘗試[WindowTimers.setTimeout()](https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers.setTimeout) –