【发布时间】:2017-10-21 00:27:14
【问题描述】:
控制台最后返回空数组。 控制台在 ids.map 函数完成之前运行
var ids = [];
var allLync = []
var user = await User.findOne(args.user)
ids.push(user._id)
user.following.map(x => {
ids.push(x)
})
ids.map(async x => {
var lync = await Lync.find({ "author": x })
lync.map(u => {
allLync.push[u]
})
})
console.log(allLync)
我做错了什么?
【问题讨论】:
-
lync的值是多少 - 尝试添加console.log(lync)以查看Lync.find({ "author": x })会返回给您什么 - 顺便说一句,.map的使用非常糟糕 - 顺便说一句你写的,你也可以使用.forEach -
@JaromandaX 你是对的,但有点小问题:OP 实际上确实需要
.map,因为他们需要在log之前等待他们的承诺 -
除了返回的值我的
.map并没有被实际使用 - 我说他使用 .map 的方式他也可以使用 .forEach .... 但是 .map 是正确的方法,如果它正确使用
标签: javascript node.js mongoose promise async-await