如何在JavaScript中设置回调函数内的变量?

时间:2013-02-18 18:52:33

标签: javascript variables cordova callback web-storage

我正在为一个小项目测试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函数中设置该变量的任何想法?

感谢

1 个答案:

答案 0 :(得分:4)

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