Вызов функции, которая вызывает Async MySQL - PullRequest
0 голосов
/ 15 февраля 2019

Я хочу вызвать функцию, которая выполняет запрос, используя функцию npm-mysql .query .Проблема в том, что .query является асинхронным, поэтому я получаю возвращаемое значение = undefined , и после этого mysql.query заканчивает выполнение.Я пытался использовать обещания , но не смог синхронизировать возвращаемое значение с результатом mysql.query.

  1. Я не хочу использовать sync-mysql.
  2. Я хочу, чтобы он был в функции-обертке, как показано.

function mysql_select(query) { var json_result mysql_connnection.query(query, function (err, result) { if (err) throw err json_result = JSON.stringify(result) }) return json_result }

Например, я хочу вызвать эту функцию следующим образом:

console.log(mysql_select("SELECT * FROM table"))

и не получить неопределенный результат. Я проверил запрос, он возвращает данные правильно, нопосле того, как функция вернет json_result.

1 Ответ

0 голосов
/ 15 февраля 2019

Возможно, вы захотите взглянуть на Обещания:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise

function mysql_select(query)
{
    return new Promise(function(resolve, reject) {
        mysql_connnection.query(query, function (err, result) 
        {
            if (err) {
                reject(err);
                return;
            }
            resolve(JSON.stringify(result));
        })

    })
}

;(async function() {
    console.log(await mysql_select('SELECT * FROM table'));
})();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...