调用一个调用异步mysql的函数

时间:2019-02-15 08:37:08

标签: mysql node.js asynchronous

我想调用一个使用 npm-mysql .query 函数执行查询的函数。问题是.query是异步的,因此我得到一个返回值 = undefined ,然后mysql.query完成执行。 我尝试使用 promises ,但无法将返回值与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 :(得分:0)

您可能想看看Promises:

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'));
})();