gpt4 book ai didi

javascript - 我在 Node.js 异步函数中收到 Promise { }

转载 作者:行者123 更新时间:2023-12-02 22:45:46 26 4
gpt4 key购买 nike

我在nodejs上的一个类上有这个函数。它正在获取数据库上的所有行。

module.exports = class fooClass {
static async fooFunc() {
const mysql = require('mysql');
const util = require('util');
const conn = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '',
database: 'dbname'
});

// node native promisify
const query = util.promisify(conn.query).bind(conn);

try {
const rows = await query('SELECT * FROM `dbtable`');
return rows;
} finally {
conn.end();
}
}
}

当我调用这个函数时,

let result = fooClass.fooFunc();
console.log(result);

我得到这个:

Promise { <pennding> }

我可以使用 fooClass.fooFunc().then... 但这需要我在 then 上添加回调函数,并且需要进行大量更改.

有什么方法可以通过调用 let result = fooClass.fooFunc(); 来获取行吗?

提前致谢。

最佳答案

当函数调用在函数内完成时,您可以按照@Bravo建议的方式编写它:

let result = await fooClass.fooFunc();

链接async/await

如果您在函数外部调用它:

(async function(){
let result = await fooClass.fooFunc();
})();

关于javascript - 我在 Node.js 异步函数中收到 Promise { <pending> },我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58405176/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com