在Axios中支持并发请求的处理是非常方便的。可以通过 Axios.all() 和 Axios.spread() 方法实现。
Axios.all() 可以将多个并发请求组合为单个 Promise,这个 Promise 会在所有请求完成后 resolve,返回的值是一个数组,包含每个请求的响应结果。语法如下:
axios.all([axios.get(url1), axios.get(url2)])
.then(axios.spread(function (res1, res2) {
// 两个请求现在都执行完成
console.log(res1.data);
console.log(res2.data);
}));
Axios.spread() 方法是一个将多个参数的函数分成多个参数单元调用的辅助方法,它可以将 axios.all() 返回的“数组参数”分解为多个独立的参数,并将这些参数依次传入处理函数中。例如,上面的代码中, axios.spread() 将分两次传递每个响应( res1 和 res2 )。
需要注意的是, Axios.all() 方法返回的是一个 Promise,所以我们可以在.then()中继续链式调用其他的.then()。在实际应用中,我们经常需要做多个请求的组合,这就需要用到Axios.all()方法了。