为了账号安全,请及时绑定邮箱和手机立即绑定

异步/等待正在等待另一个?

异步/等待正在等待另一个?

GCT1015 2022-09-02 16:16:38
我有异步函数:const getUser = async (query) => {  const user = await Users.findOne(query);  const feed = await Feeds.findOne({ user: user._id });  console.log("Do this befor await above");  return { user, feed };};这是否意味着JS在每个等待行上延迟,等待承诺结果并且从未在上面的两个行之前运行?有没有可能最后一个等待返回得比第一个更快,我得到这个:console.log("Do this befor await above");awaitreturn {undefined, feed}?那么,异步调用后的代码没有阻塞吗?getUser();console.log("Code below is not blocking...");
查看完整描述

1 回答

?
慕姐4208626

TA贡献1852条经验 获得超7个赞

假设实际返回一个承诺:findOne

这是否意味着JS在每个等待行上延迟,等待承诺结果

是的

和控制台.log(“Do this befor await above”);从来没有跑过前面两个等待上面?

是的

有没有可能最后一个等待返回得比第一个更快,我得到这个:

不。 在解析返回的承诺之前,甚至不会调用。Feeds.findOneUsers.findOne


查看完整回答
反对 回复 2022-09-02
  • 1 回答
  • 0 关注
  • 68 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信