javascript - 我得到承诺{关于 node.js 异步函数
问题描述
我在 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();
})();
推荐阅读
- angular - 使用 mapbog gl js 突出显示(着色)区域取决于 Mapbox 上土地区域的大小
- python - 删除以特定数字开头的行
- android - App.Current.MainPage 上的 NullReferenceException
- c++ - 嗨,我正在努力解决排序问题
- c++ - 我在一个死循环游戏问题中的方法有什么问题?
- python - 从特定日期检索电子邮件
- android - 如何将我的按钮从屏幕顶部向下移动?
- openid-connect - MSAL.Net 能否用于 RPOC 流以获取 Azure B2C 中的 Id 令牌
- javascript - 练习 javascript 并在 if 语句中出现错误
- python - python Django REST Framework CSRF 失败:未设置 CSRF cookie?