无法解决对导出的异步函数NodeJS的承诺

问题描述 投票:0回答:1

所以当我导出异步函数时,我面临这个问题:

async function getItemData(callback) {
    let result = await pool.getConnection(async function(err, con) {
        if (err) throw err;

        let queryPromise = await new Promise((resolve, reject)=> {

            con.query("SELECT * FROM customers", function(err, rows) {

                if (err) {
                    console.log(err);
                    reject(err);
                } else {
                    console.log('Found records : ' + rows.length);
                    resolve(rows);
                }

            });

        });
    }); 
}

module.exports.getItemData = getItemData;

这里叫它:

app.listen(port, function () {

    console.log('Api server is listening on port '+ port);

    (async () => {

    let result = await driver.getItemData();

    console.log(result);

});

promise中的console.log有效。但是函数外部的console.log返回未定义。知道为什么吗?

javascript mysql node.js bluebird
1个回答
0
投票

您可以尝试以下方法:

app.listen(port, async () => {

    console.log('Api server is listening on port '+ port);

    let result = await driver.getItemData();

    console.log(result);

});
© www.soinside.com 2019 - 2024. All rights reserved.