簡體   English   中英

Async/Await 正在等待另一個?

[英]Async/Await is awaiting another?

我有異步 function:

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在每條await線上都有延遲,等待promise結果和console.log("Do this befor await above"); 從來沒有在上面兩個await之前運行? 是否有可能最后一個等待比第一個更快返回,我得到了這個:

return {undefined, feed}

那么,異步調用后的代碼不會阻塞嗎?

getUser();
console.log("Code below is not blocking...");

假設findOne實際上返回 promise:

是不是意味着JS在每條await線上都有延遲,等待promise結果

是的

和 console.log("在上面的等待之前執行此操作"); 從來沒有在上面兩個 await 之前運行?

是的

是否有可能最后一個等待比第一個更快返回,我得到了這個:

不,直到Feeds.findOne返回的Users.findOne解決后,才會調用 Feeds.findOne。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM