我从Node.js使用Javascript MYSQL库,然后我有多个查询运行循环。但是当我运行循环时,the loop
总是会在它开始的查询仍在处理时突然结束(完成)。那么如何让循环等待每个查询直到完成,然后继续正常?Node.js MYSQL在上一次完成后按顺序运行每个查询?
我的代码是:
function startHere() {
console.log("-- START --");
for (i=1; i < 6; i++) {
dbInsert(i);
}
console.log("-- END --");
}
function dbInsert(id) {
connection.query (
'INSERT INTO table SET data=?',
[id],
function selectCb(err, results, fields) {
if (err) {
console.log(err.message);
}
if (results.length > 0) {
console.log(id+" RECORDS ADDED!");
}
}
);
}
startHere();
当我运行它,它总是返回类似:
-- START --
-- END --
1 RECORDS ADDED!
2 RECORDS ADDED!
3 RECORDS ADDED!
4 RECORDS ADDED!
5 RECORDS ADDED!
这意味着,循环不等待它开始查询结束。
我如何检测查询的终点并使其工作?
我认为这是一个重复这样的:http://stackoverflow.com/questions/6638646/synchronous-mysql-in-node- js – xiaoyi
首先,更熟悉“异步”代表什么(Google是你的朋友)。其次,签出[本页](https://github.com/caolan/async)。 – elmigranto