我希望编写一个Node.js模块来处理我的各种数据库调用。我想尽可能多地使用async/await,但是遇到了一些问题。
我已经有一些使用Promise的函数,并且成功导出它们。
例如:
function GetUsernames() {
return new Promise(function (resolve, reject) {
sql.connect(config).then(function () {
new sql.Request()
.query("SELECT [UserName] FROM [Users] ORDER BY [LastLogin] ASC").then(function (recordset) {
resolve(recordset);
}).catch(function (err) {
reject(err);
});
});
});
}
然后我按照以下方式进行导出:
module.exports = {
GetUsernames: GetUsernames,
GetScopes: GetScopes,
UpdateToken: UpdateToken,
SetOwner: SetOwner
};
但是,如何使用异步函数,在node7中使用可用的async/await呢?
我是否仍然只返回一个promise?我尝试过这样做,但是当我在我的代码中调用它时,它不起作用。
const db = require("dataprovider");
...
var result = await db.GetUsernames();
我得到的错误信息:
SyntaxError:意外的标识符
它出现在数据库名称上(如果仅使用promise函数,使用then()则正常工作)。
也许我的谷歌搜索技能很糟糕,但我没有找到任何有用的东西来解决此问题。
我该如何在模块中创建一个异步函数,以便可以在其他地方等待它?