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