NodeJs + Mysql查询执行为时已晚(延迟)

时间:2019-01-31 06:34:15

标签: javascript node.js mysqljs

NodeJs + Mysql查询执行为时已晚(延迟) https://github.com/mysqljs/mysql

大家好,当我执行.query();时,我需要有关mysql js的帮助。回调总是会延迟并且给我空的结果,但是如果我放置计时器,它将给我结果,我们如何解决此问题...在他们的文档中说:“您在连接上调用的每个方法都按顺序排队并执行。 ”所以我相信他们使用异步,谁知道在将数据发送回客户端之前如何等待结果?我尝试了Promise,Async / Await,但是他们使用其他方式来存储他们的查询。

libcfd_interface.so

1 个答案:

答案 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)
        }
    }