我确定我在编写代码时没有考虑到异步。但我不知道该怎么做。
// order.xml
const db = require("./db");
let orders = db.getNewOrders();
console.log(orders);
和
//db.js
const sqlite3 = require("sqlite3").verbose();
let db = new sqlite3.Database(process.env.DB_PATH, err => {
if (err) {
console.error(err.message);
}
console.log("Connected to the test database.");
});
db.run(
....
);
function getNewOrders() {
let orders = [];
db.each("SELECT * FROM Orders", function(err, row) {
orders.push(row);
console.log(1);
});
return orders;
}
module.exports.getNewOrders = getNewOrders;
控制台返回
[]
Connected to the test database.
1
但我期待数据行。我肯定有数据,我用 SQL 客户端检查过。
很明显 getNewOrders 返回一个空数组,因为数据库尚未完成操作。如何更新我的代码,以便数据库完成并填充订单数组,以便我可以在我得到的另一个文件中使用它?