vue 同时调用两个axios回调函数
时间: 2023-05-15 16:03:28 浏览: 339
在Vue中同时调用两个axios的回调函数可以通过使用Promise.all方法实现。Promise.all方法可以接受一个由promise对象组成的数组作为参数,并且返回一个新的promise对象,在所有promise对象都resolve时resolve该新的promise对象。在这个新的promise对象的then方法中可以同时处理两个axios的回调函数返回的数据,如下所示:
```js
import axios from 'axios';
const promise1 = axios.get('url1');
const promise2 = axios.get('url2');
Promise.all([promise1, promise2]).then(([res1, res2]) => {
console.log(res1.data);
console.log(res2.data);
}).catch(error => {
console.log(error);
});
```
在以上代码中,首先使用axios.get方法分别获取两个接口的数据,并使用Promise.all方法将两个promise对象组成的数组传入。在Promise.all方法返回的promise对象的then方法中,使用解构赋值获取每个promise对象resolve时返回的数据,并处理两个axios的回调函数返回的数据。如果其中一个promise对象reject了,则catch方法会捕获错误并输出到控制台。
需要注意的是,在使用Promise.all方法同时处理多个接口的数据时,必须确保所有接口都resolve了才能进行处理,否则会出现未定义的情况。
阅读全文