数据库嵌套查询,如何解决异步问题。

练手时遇见一个小问题:

clipboard.png
如图所示,video里包含user的信息,目前能获取到user的id,我想根据user的id查询到avatar,也就是在video查询语句里面嵌套user的查询,如下:

clipboard.png

这样res.send()会在User.findOne()之前执行。

如何能做到在User.findOne()之后才执行res.send()呢?

前端萌新对Promiseasync/await的了解程度为能看懂,但是写不出来。

萌新求赐教!

阅读 2.7k
2 个回答
//用async function包裹以下代码
let videos = await Video.find(...);
for(let video of videos){
  await User.findOne(...)
}
res.send(...)

或者用Promise.all执行多个User.findOne。

解决顺序问题之后可能还是有问题,video应该是只读的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题