【发布时间】:2019-03-03 05:34:31
【问题描述】:
这是调用异步api 的简单节点路由。
循环后需要return data。但它返回的是空白对象。
try {
const array = ["brunch", "lunch", "crunch"]
const data = {}
array.map(async(d) => {
const venue = await Venue.find({ "category": { "$in": [d] }})
data[d] = venue
})
return data
} catch(err) {
throw err
}
请帮助我实现这一目标
【问题讨论】:
-
@T.J.Crowder 如何将动态键也放入我的数据对象?我不这么认为它是重复的
-
对this fiddle有帮助
-
因为 array.map 返回一个 promises 数组 - 你需要等待它们全部完成......注意,你的代码(和小提琴)不会连续执行
Venue.find,它并行执行所有这些-如果需要一个接一个(某些API不喜欢一次多个请求),那么您将使用不同的代码-即this fiddle -
@T.J.Crowder 已打开,因为该问题有其他解决方案
-
@DarkKnight - 我愿意,当我认为有任何真正的机会需要澄清时。 (有时相当广泛的 cmets。)我没有(也没有)在这里。我确实努力成为一个相当有用的人。 :-)
标签: javascript node.js mongodb async-await aggregation-framework