我试图从调用函数中使用mysql数据库查询来获取结果,但不等待调用函数中的结果。以下是我的users.js文件代码。我在 getBankDetail 函数中得到了结果,但是在 users 函数中却没有得到结果。
//
// Links
//
a {
color: $link-color;
text-decoration: $link-decoration;
background-color: transparent; // Remove the gray background on active links in IE 10.
-webkit-text-decoration-skip: objects; // Remove gaps in links underline in iOS 8+ and Safari 8+.
@include hover {
color: $link-hover-color;
text-decoration: $link-hover-decoration;
}
}
我的问题是为什么不等待调用函数中的结果?我还使用了异步/等待功能。
答案 0 :(得分:1)
function getBankDetail(){
return new Promise((resolve, reject) => {
db.getConnection(function(err, connection) {
if (err) reject(err); // not connected!
connection.query('SELECT * FROM bank', function (error, results, fields) {
connection.release();
if (error) reject(err);
console.log("bank result",results); //Here I got result
resolve(results);
});
});
});
}
然后您可以使用let bankDetail = await getBankDetail();
如果要在db.getConnection
和connection.query
上使用await,则必须使用 mysql2 / promises 库或自己实现这些功能
这是使用数据库驱动程序的承诺版本时的实现:
async function getBankDetail(){
const connection = await db.getConnection();
const data = await connection.query('SELECT * FROM bank');
connection.release();
console.log("bank result", data[0]); //Here I got result
return data[0];
}