1

我正在为一个小项目测试Phonegap Web Storage :

var listsCount = 0;

tx.executeSql("SELECT * FROM list WHERE id = ?", [id], successGetList, errorGetList );

function successGetList(tx, results){
    listsCount = results.rows.length; // this will be 2, in my case
}

function errorGetList(err){
    console.log("Error processing SQL: "+err.code);
}

console.log(listsCount); // this will show 0, instead of 2

我遇到的问题是listsCount没有在successGetList方法中设置。即使我把它还在那里。

关于如何在successGetList函数内部设置该变量的任何想法?

谢谢

4

1 回答 1

4

它确实已设置,但您的console.log调用在此之前被触发(这就是异步代码的工作方式!)。只需使用回调中的值。如果需要,从那里调用另一个函数,并将数据传递给它。

于 2013-02-18T18:53:58.177 回答