NodeJs + Mysql查询执行为时已晚(延迟) https://github.com/mysqljs/mysql
大家好,当我执行.query();时,我需要有关mysql js的帮助。回调总是会延迟并且给我空的结果,但是如果我放置计时器,它将给我结果,我们如何解决此问题...在他们的文档中说:“您在连接上调用的每个方法都按顺序排队并执行。 ”所以我相信他们使用异步,谁知道在将数据发送回客户端之前如何等待结果?我尝试了Promise,Async / Await,但是他们使用其他方式来存储他们的查询。
libcfd_interface.so
答案 0 :(得分:1)
有两种方法可以处理这种情况,建议您将查询包装在Promise中,如下所示:
function getUsers() {
return new Promise((resolve, reject)=> {
con.query(`SELECT * FROM users`,
function(err, data) {
if(err) {
return reject(err);
}
resolve(data);
});
})
}
//usage
async function(req, res) {
try {
const users = await getUsers();
res.send(users);
} catch(error) {
res.status(500).send(error)
}
}