我從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