我正在尝试await
在返回函数之前完成数据库查询,但是由于某种原因,我的方法似乎无法正常工作。
似乎该函数在await
返回已解析的Promise
之前返回。
var returnAfterReading = async () => {
let myEntityJSONConst = {
myEntity : {}
}
myEntityJSONConst["myEntity"] = await dbQueryPromise();
return myEntityJSONConst;
}
console.log(JSON.stringify(returnAfterReading())) // {"myEntity":{}}
我究竟做错了什么?
谢谢大家。
最佳答案
在调用returnAfterReading()
函数之前,您缺少等待:
请注意,应在returnAfterReading()
上下文中(在async
函数中)调用async
函数,否则您需要使用promise(例如returnAfterReading().then(data => { /* bla-bla */ })
)
const returnAfterReading = async () => {
const myEntityJSONConst = {
myEntity : {}
}
myEntityJSONConst["myEntity"] = await dbQueryPromise();
return myEntityJSONConst;
}
// ... In some other async context
console.log(JSON.stringify(await returnAfterReading()));