我在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 function(){
let result = await fooClass.fooFunc();
})();
关于javascript - 我在 Node.js 异步函数中收到 Promise { <pending> },我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58405176/