chelovekmuravei
@chelovekmuravei
\(-_-)/ раз два три четыре

Ожидание получения ответа от mysql?

Пожалуйста помогите, много гуглил, тонны кода в вопросах и ответах, ничего не могу понять, как заставить ждать ответа от mysql? Авторизация клиента происходит через куки и запроса в базу данных. Код работает дальше, a undefined. console.log(results.length) сработает, но потом. Как решить эту проблему, желательно с примером на этом коде.

var a;
con.query("SELECT count(*) FROM `users` ...", function(error, results, fields){
  if (error) throw error;
  console.log(results.length); // количество совпадений
  a = results.length;
});

if(a ...) // undefined
  ...


еще спасибо Abcdefgk
  • Вопрос задан
  • 337 просмотров
Решения вопроса 2
mmmaaak
@mmmaaak
con.query асинхронный, код написаный после него (if (a)...), выполнится сразу, не дожидаясь выполнения запроса, поэтому а значение не задано, а то, что исполняется после выполнения запроса, описано в колбэке, там и производи все действия с результатами запроса
Ответ написан
Комментировать
@SaXXuM
В колбеке надо и писать дальнейшую обработку после получения ответа от БД.
var a;
con.query("SELECT count(*) FROM `users` ...", function(error, results, fields){
  if (error) throw error;
  console.log(results.length); // количество совпадений
  a = results.length;
  if(a ...) // number records
    ...
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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