如何知道异步方法完成工作



如何知道异步方法是否正常工作?我需要控制台中的所有对象.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); 
});

console.log移动到数据库回调内

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); 
    });
});

每当数据库调用完成时,该函数就会运行。 以前,您运行控制台.log在数据库读取完成之前,因此数据库结果不在数组中。

最新更新