2
我正在嘗試編寫節點模塊來處理我的各種數據庫調用。 我想盡可能使用異步/等待,但我遇到了一些問題。如何從節點模塊導出異步功能
我一直在使用承諾一點,並導出這些功能很好。 例子:
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?
我還只是答應了嗎?我試過這樣做,但是當我在代碼中調用它時,它不起作用。
const db = require("dataprovider");
...
var result = await db.GetUsernames();
它給我:
SyntaxError: Unexpected identifier
的數據庫名稱
也許我的谷歌技能是可怕的(()工作正常,如果我只是用承諾的功能,與當時)但在這個問題上,我還沒有設法谷歌任何我可以使用的。
在我的模塊中,我怎樣才能使異步函數在其他地方等待?
我不知道這是如何解決module.exports的問題。你能詳細說明嗎? – deejbee
對不起,不清楚。你可以做兩件事情,與上面,你可以再添加: Module.exports = { getUserNames:getUserNames } 或者你可以定義函數就在你的模塊出口: module.exports = { getUserNames:異步函數(){ return await db.getUserNames(); } } –