Я использую Javascript MYSQL Library от Node.js, а затем у меня есть несколько запросов для запуска в цикле. Но когда я запускаю цикл, the loop
всегда доходит до конца (сделано) внезапно, а запущенные запросы все еще обрабатываются. Итак, как мне сохранить цикл, чтобы каждый Query выполнил, а затем продолжить нормально?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