我尝试使用mysql数据库查询从被调用函数中获取结果,但不等待被调用函数中的结果。下面是我的users.js文件的代码。我在getbankdetail函数中得到了结果,但在users函数中没有得到结果。
var db = require("../db/mysqlconnection");
function users(app){
app.get("/users",async function(req, res, next){
let bankDetail = await getBankDetail();
console.log("bankDetail",bankDetail); //Here I do not got result
return res.send(bankDetail);
});
}
async function getBankDetail(){
db.getConnection(async function(err, connection) {
if (err) throw err; // not connected!
await connection.query('SELECT * FROM bank', function (error, results, fields) {
connection.release();
if (error) throw error;
console.log("bank result",results); //Here I got result
return results;
});
});
}
module.exports = users;
我的问题是为什么不在调用的函数中等待结果?我还使用了异步/等待功能。
1条答案
按热度按时间t8e9dugd1#
然后你可以用
let bankDetail = await getBankDetail();
如果你想使用等待你的db.getConnection
以及connection.query
您将不得不使用mysql2/promises库或自己promisify这些函数以下是使用数据库驱动程序的预期版本时的实现: