2
我見過很多類似的問題,但沒有人真正回答我的問題。我認爲這會很簡單,但我想不是。需要函數等待,直到事件處理程序在執行下一個函數之前完成
我需要調用一個函數20次,每次都有一組不同的SQL語句。 調用的函數執行SQL查詢,結果由eventHandler處理。我需要在執行下一個函數調用之前檢查事件處理程序。
由於事件處理程序是異步的,因此調用函數在不等待處理程序的情況下完成。我需要queryFunction等待queryHandler完成,然後再轉到下一個queryFunction。雖然我的項目是AIR,但我懷疑這不是問題的一部分。
我希望我已經清楚,我相對較新的JavaScript。
function mainFunction(){
queryFunction (var1, var2); // There would be twenty of these with
queryFunction (var1, var2); // different values for var1 and var2
queryFunction (var1, var2);
queryFunction (var1, var2);
// etc, etc....
}
function queryFunction(){
var sqlStatment = 'SELECT Field1, Field2, Field3'+
'FROM [TableName] ' +
'WHERE Field1= var1 AND Field2= var2'; //simplified code
var stmt = new air.SQLStatement();
stmt.sqlConnection = conn;
stmt.text = sqlStatment;
stmt.addEventListener(air.SQLEvent.RESULT, queryHandler);
stmt.addEventListener(air.SQLErrorEvent.ERROR, errorHandler);
stmt.execute();
}
function queryHandler(event){
// queryHandler code
}
感謝您的回覆,我想我理解了解決方案。 queue.push中的參數是字面值嗎? – user2221845 2013-05-10 23:38:41
是的。它是一個傳遞給函數的參數數組。 – 2013-05-10 23:41:05
謝謝,實現它需要一段時間,因爲mainFuction中還有其他代碼,我將不得不移動。我會讓你知道它是如何工作的。 – user2221845 2013-05-10 23:43:15