我正在为一个小项目测试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
函数中设置该变量的任何想法?
感谢
答案 0 :(得分:4)
它确实已设置,但在此之前你的console.log
调用被触发(这就是异步代码的工作原理!)。只需使用回调中的值即可。如果需要,可以从那里调用另一个函数,并将数据传递给它。