conn = mysql.createConnection(options);
conn.connect();
var sql = 'select * from member';
for(var i=0; i<3; i++){
(function(){
console.log(i);
conn.query(sql, function(err,result){
console.log('q');
})
})(i)
}
for (var i=0; i<2; i++){
console.log(i)
}
Я использую npm-mysql. Я ожидал, что консоль отобразит «012qqq01», но на самом деле я получил «01201qqq». Я смущен. Почему «conn.querry» исполняется последним? Заранее спасибо.nodejs выполнить заказ, используя mysql
Не является ли обратный вызов (или функция), который вы передаете как второй аргумент для 'con.query', выполняемый асинхронно? Если он выполнен таким образом, это может объяснить ваш результат ... – nbro
Дубликат - http://stackoverflow.com/questions/38945606/node-js-does-not-wait-for-the-mysql-server-sends -the-answer-and-continue-to-wo –
Если вы не знакомы с асинхронным кодом, вам придется получить дескриптор этого файла, прежде чем писать код Node.js. Это * чрезвычайно * зависит от этого принципа, поскольку он является философией вождения. – tadman