【发布时间】:2014-03-27 19:23:46
【问题描述】:
如何知道异步方法完成工作?我需要 console.log(resp) 中的所有对象,但结果我只得到 [] 一个空数组。
var sqlite = require("sqlite3");
var db = new sqlite.Database(process.cwd() + "/cb.db");
var resp = [];
db.serialize(function() {
db.each("SELECT * from user", function(err, data) {
var obj = {};
obj.name = data.user;
resp.push(obj);
});
console.log(resp);
});
【问题讨论】:
-
sqlite的Database#each接受第二个回调函数complete,参数为function (err, rowCount)。 -
异步任务通常总是在完成时告诉你。 Jonathan Lonowski 知道在这种情况下会触发哪一个。
-
感谢您的回答朋友,现在我找到了一条可以走的路。
-
@JonathanLonowski 谢谢先生拯救了我的一天。
标签: node.js asynchronous sqlite