Async / Await正在等待另一个?

问题描述 投票:0回答:1

我具有异步功能:

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");从未在以上两个await之前运行?是否有可能最后一次等待返回的速度比第一个更快,所以我得到了:

return {undefined, feed}

所以,异步调用后的代码没有阻塞吗?

getUser();
console.log("Code below is not blocking...");
javascript async-await
1个回答
2
投票

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

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

和console.log(“在此之前等待此操作”);从未在两个以上等待之前运行?

是否可以比最后一次更快返回最后一个等待,我得到这个:

没有直到Feeds.findOne返回的诺言得到解决,才会调用Users.findOne

© www.soinside.com 2019 - 2024. All rights reserved.