我具有异步功能:
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...");
假设findOne
实际上返回了一个承诺:
这是否意味着JS在每个等待行上延迟,正在等待诺言结果
是
和console.log(“在此之前等待此操作”);从未在两个以上等待之前运行?
是
是否可以比最后一次更快返回最后一个等待,我得到这个:
没有直到Feeds.findOne
返回的诺言得到解决,才会调用Users.findOne
。