我使用sqlite3 node.js 的模块,我使用光标从表中获取值,如下所示:
db = new sqlite3.Database(config.sqlite3config.path);
statement = db.prepare("SELECT * FROM test_table");
var temp = {};
statement.get(function(err, col) {
temp = col;
});
console.log(temp);
最后console.log我得到空的js对象,但我想得到statement.get函数结果,我如何从回调中获取col值?
最佳答案
原因是因为数据库调用是异步的 - 因此当您的 console.log
命中时,该命令尚未完成。您有几个选择,1)。在该命令的回调函数中完成您的工作:
statement.get(function(err, col) {
temp = col;
//do stuff!
});
2) 使用回调函数并将数据传递给其中:
statement.get(function(err, col) {
temp = col;
callback(temp);
});
function callback(param) {
console.log(param);
}
关于javascript - 从回调中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20131065/