我正在使用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/

10-09 23:55