我有异步函数: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.findOne
Users.findOne
添加回答
举报
0/150
提交
取消