我的代码是:
jsonArray.forEach(function (that) {
db.each(sql, function (err, row) {
}, function (err, rows) {
console.log("111");
});
});
console.log("222");
第一次写入后是222。 如何等待db.each写111然后222? 感谢
编辑:
console.log("222");
在循环之后。
答案 0 :(得分:2)
为了确保在“111”之后记录“222”,你必须这样做:
jsonArray.forEach(function (that) {
db.each(sql, function (err, row) {
}, function (err, rows) {
console.log("111");
console.log("222");
});
});
这是因为传递给db.each()
的第二个函数在数据库查询完成后保证被称为。由于数据库查询是以异步执行的,因此您无法在启动查询后立即记录“222”并期望它在“111”之后可靠地显示。
现在,如果你真的希望“111”打印出每个结果行,你需要这样的东西:
jsonArray.forEach(function (that) {
db.each(sql, function (err, row) {
console.log("111");
}, function (err, rows) {
console.log("222");
});
});