含async/await的Axios代码是否同步执行?执行顺序确认
问题解答
是的,这段代码会严格按照先执行并完成第一个请求,再执行并完成第二个请求,最后执行第三个请求的顺序运行。
原因很直接:每个axios.get()调用前都加了await关键字,在async函数里,await会暂停当前函数的执行流程,直到它后面的Promise对象(Axios请求返回的就是Promise)状态变为已完成(fulfilled),才会继续执行下一行代码。也就是说,第一个请求没结束,第二个请求根本不会被发起,必须等上一个请求彻底完成,才会启动下一个。
如果想要同时发起这三个请求以提升效率,应该用Promise.all()来实现,示例代码如下:
const test = async () => { const [first, second, third] = await Promise.all([ axios.get("some url"), axios.get("some other url"), axios.get("some other other url") ]); };
内容的提问来源于stack exchange,提问作者Odriv
相关产品推荐
相关产品推荐

