我正在處理一個專案,我需要遍歷多個值,然后計算資料庫中與這些值匹配的專案數。然后回傳結果。
這是我想要運行的代碼:
var types = config.deviceTypes
for(const type of types)
{
db.find(
{
selector:
{
type: {$eq: type.name}
}
}
)
.then(results => type.count = results.docs.length)
}
return types
然而,運行此函式會回傳型別而無需對計數進行任何修改,因為此函式是異步運行的。我嘗試進行以下修改以使用await:
var types = config.deviceTypes
for(const type of types)
{
var results = await db.find(
{
selector:
{
type: {$eq: type.name}
}
}
)
type.count = results.docs.length
}
return types
但是,這會產生錯誤:“SyntaxError:await 僅在異步函式中有效”
我在 Node 14.17.0 上使用 PouchDB
uj5u.com熱心網友回復:
“語法錯誤:等待僅在異步函式中有效”
通過確保您在異步函式中執行此操作,可以修復該錯誤。
async function foo() {
var types = config.deviceTypes
for(const type of types)
{
var results = await db.find(
{
selector:
{
type: {$eq: type.name}
}
}
)
type.count = results.docs.length
}
return types;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/315470.html
標籤:javascript 循环 异步等待 承诺
