【发布时间】:2016-12-30 14:33:35
【问题描述】:
我正在尝试读取 sqlite3 表中的所有记录并通过回调返回它们。但似乎尽管使用了序列化,但这些调用仍然是异步的。这是我的代码:
var readRecordsFromMediaTable = function(callback){
var db = new sqlite3.Database(file, sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE);
var allRecords = [];
db.serialize(function() {
db.each("SELECT * FROM MediaTable", function(err, row) {
myLib.generateLog(levelDebug, util.inspect(row));
allRecords.push(row);
}
callback(allRecords);
db.close();
});
}
当回调被触发时,数组打印'[]'。
我是否可以进行另一个调用(而不是 db.each),它可以一次性为我提供所有行。我不需要在这里遍历每一行。
如果没有,我如何读取所有记录,然后才调用带有结果的回调?
【问题讨论】: