axios.all 并发请求 axiospost请求,并携带不同参数
时间: 2024-10-20 21:18:46 浏览: 31
解决vue 使用axios.all()方法发起多个请求控制台报错的问题
`axios.all()` 和 `axios.spread()` 是 Axios 库中用于并发发送多个请求的方法。当需要同时发起多个 API 请求并等待所有响应完成后处理结果时,这两个方法非常有用。
`axios.all([arrayOfRequests])` 这个函数接收一个包含多个 Axios 实例配置的对象数组,它会异步地启动所有的请求,返回的是一个 Promise 对象,表示所有请求完成的状态。这个 Promise 将解析为一个数组,数组的每个元素对应于原始数组中的请求的结果。
然后,你可以使用 `axios.spread(callback)` 或者直接用箭头函数 `(responses) => { /* ... */ }` 来处理所有响应,`responses` 参数是一个包含了所有请求结果的数组。
例如:
```javascript
const requests = [
axios.post('api1', params1),
axios.post('api2', params2),
axios.post('api3', params3)
];
axios.all(requests)
.then(axios.spread((response1, response2, response3) => {
// 处理所有请求的成功响应
console.log(response1.data);
console.log(response2.data);
console.log(response3.data);
}))
.catch(error => {
// 处理任何一个请求失败的情况
console.error(error);
});
```
在这个例子中,三个 POST 请求会被并发发送,然后当它们都完成后,一次性回调函数会被调用,传入每个请求的结果。
阅读全文