Задать вопрос
@Genocide
Кратко обо мне не рассказать

Как добиться синхронного выполнения?

Перед выполнением какого-либо действия, мне необходимо проверить баланс клиента с помощью функции getBalance().
Суть в том, что getBalance внутри выполняет mysql запрос и возвращает баланс, и как вы уже, вероятно, догадались, getBalance не успевает завершить выполнение, как следующий код блока продолжает свою работу с пустой переменной, которая должна быть заполнена балансом клиента.

Что же делать в таком случае?
  • Вопрос задан
  • 168 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@tex0
Пробрасывайте колбэк в getBalance, где подставляете его на место колбэка завершения mysql-запроса

/*Объявляем*/
getBalance(resultCallback) {
    connection.query('%QUERY%', resultCallback);
}

/*Используем*/
getBalance(function(err, rows, fields){
// что-то делаем с полученным результатом
});


вроде так
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@LiguidCool
Используйте callback'и.
Если кратко, то в функцию getBalance вы передаёте функцию, которая должна выполнится, когда этот самый баланс получен.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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