我正在使用PhoneGap应用,并且我的这段代码处于循环中
htmlR += "html code here";
tx.executeSql('SELECT Question,Grp from KnowSelf where Dimension = "'+result.Dimension+'"', [], function(tx,resultR){
var leng = resultR.rows.length;
for(var i = 0; i < leng; i++){
var resultsR = resultR.rows.item(i);
htmlR += '<li class="catsli">'+resultsR.Question+'</li>';
htmlR += '<li class="line"><img class="line" src="iPhone3/Line.png" alt="line"/></li>';
}
},errorCB);
htmlR += "continue html code here";
我的问题是,在
tx.executeSql(.... htmlR +=
li
标记内没有添加到外部
htmlR
。 最佳答案
我怀疑不会立即调用回调,而是异步调用,因此您不会立即看到结果。如果是这样,正确的处理方法是执行所有依赖于回调内部结果的处理,而不是在调用executeSQL
之后进行。例如,更改:
// Do Something
doSomething();
// Do some SQL
executeSQL(..., function() {
// ...deal with callback...
});
// Do something after SQL
doSomethingElse();
至
// Do Something
doSomething();
// Do some SQL
executeSQL(..., function() {
// ...deal with callback...
// Do something after SQL
doSomethingElse();
});
关于javascript - JavaScript匿名函数变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8392805/