我见过很多类似的问题,但没有一个真正回答我的问题。我认为这很简单,但我想不是。
我需要调用一个函数 20 次,每次调用一组不同的 SQL 语句。调用的函数执行 SQL 查询,结果由 eventHandler 处理。我需要在执行下一个函数调用之前完成对事件处理程序的检查。
由于事件处理程序是异步的,因此调用函数无需等待处理程序即可完成。在进入下一个 queryFunction 之前,我需要 queryFunction 等待 queryHandler 完成。虽然我的项目是 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
}