1 回答
TA贡献1895条经验 获得超3个赞
该数组为空,因为在发送响应时,带有帖子的承诺仍在等待解决。
为了解决这个问题,您可以使用 收集数组中的所有承诺.map(),等待它们在 的帮助下解决,Promise.all()然后发送响应:
db
.collection('posts')
.orderBy('createdAt', 'desc')
.limit(10)
.get()
.then((data) => {
const promises = data.map((doc) => {
return db
.doc(`/users/${doc.data().userHandle}`)
.get()
.then((userDoc) => {
return {
postId: doc.data().id,
userHandle: doc.data().userHandle,
userImageUrl: userDoc.data().imageUrl,
imageUrl: doc.data().imageUrl,
};
})
});
Promise.all(promises).then(posts => {
res.json(posts);
})
})
.catch((err) => {
console.error(err);
res.status(500).json({ error: err.code});
});
添加回答
举报