@MavShieldt

Почему не заходит в цикл после получения значеия от БД?

Программа достаёт размер таблицы, но при этом после этого она не заходит в for. В чём может быть причина?
Заранее прошу прощения за не самый приятный код и некоторые идиотские решения.
let sql = require('mysql');
options = {
  host     : 'localhost',
  user     : 'root',
  password : 'password',
  database : 'chat_messages'
}

sql_connect = sql.createConnection(options);

sql_connect.connect();

sql_connect.query("use chat_messages;");
let sql_size, str, str1;
sql_connect.query("select COUNT(1) FROM chat_msg WHERE id != 0;", function(err,res) {
  if (err) console.log(err);
  str = JSON.stringify(res);
  str1 = JSON.parse(str);
  sql_size = str1[0]["COUNT(1)"];
  console.log(sql_size);
});
for (let i = 2; i < sql_size+2; i++) {
  sql.connect.query("SELECT msg_text FROM chat_msg where id = " + i + ";");
}
  • Вопрос задан
  • 84 просмотра
Решения вопроса 1
@Che603000
c 2011 javascript
sql_connect.query - выполняется асинхронно
sql_connect.query("select COUNT(1) FROM chat_msg WHERE id != 0;", function(err,res) {
  let sql_size, str, str1;

  if (err) console.log(err);
  str = JSON.stringify(res);
  str1 = JSON.parse(str);
  sql_size = str1[0]["COUNT(1)"];
  console.log(sql_size);
  // поместите цикл внутрь callback
  for (let i = 2; i < sql_size+2; i++) {
    sql.connect.query("SELECT msg_text FROM chat_msg where id = " + i + ";", funvtion(...){ /* здесь опять будет async*/ });
  }

});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы