简述Vue中同时发送多个请求怎么操作?
在 Vue 中,我们通常使用 axios 这个库来发送 HTTP 请求。如果我们需要同时发送多个请求,我们可以使用 axios 的 all
方法和 ES6 的解构赋值来实现。
以下是一个例子:
axios.all([
axios.get('/api/user'),
axios.get('/api/posts')
]).then(axios.spread((userRes, postsRes) => {
// userRes 是第一个 get 请求的响应
// postsRes 是第二个 get 请求的响应
console.log(userRes.data);
console.log(postsRes.data);
}));
在这个例子中,axios.all
方法接受一个数组,数组中的每一项都是一个 Promise(axios 请求返回的就是 Promise)。axios.all
会等待所有的 Promise 都完成,然后将所有 Promise 的结果组成一个数组传递给 then 方法。
axios.spread
方法用于将数组解构成多个参数,这样我们就可以在 then 方法中直接获取到每个请求的结果。
这种方式可以让我们在所有请求都完成后,再进行后续的操作,而且所有请求是并行发送的,可以提高效率。