当前位置:   article > 正文

axios中批量请求方法解决同时请求多个接口-多并发_vue的一个页面需要多个接口如何axios接接口

vue的一个页面需要多个接口如何axios接接口

axios.all()、axios.spread()两个辅助函数用于处理同时发送多个请求,可以实现在多个请求都完成后再执行一些逻辑。注意:该方法是axios的静态方法,不是axios实例的方法

首先下载axios

npm install axios --sava-dev

mina.js中引入axios,因为其不属于vue全家桶,所以将其挂载在vue原型上,实现全局使用

  1. main.js
  2. //引入axios模块(先下载`axios`--)
  3. import axios from 'axios'
  4. //将axios挂载在vue原型链上
  5. Vue.prototype.$axios = axios;

在其他组件使用axios配合axios.all()、axios.spread()同时发送多个请求

  1. Home.vue
  2. //在methods中定义请求方法,并return出去,不要写请求回调then()
  3. methods:{
  4. getAllTask:function(){
  5. console.log('调用第一个接口')
  6. return this.$axios({
  7. url:'http://192.168.*.**:***/api/getTask/getAllData',
  8. method:'GET',
  9. params:{
  10. offset:1,
  11. pageSize:10
  12. }
  13. })
  14. },
  15. getAllCity:function(){
  16. console.log('调用第二个接口')
  17. return this.$axios({
  18. url:'http://192.168.*.**:***/city/getCities',
  19. method:'GET',
  20. })
  21. }
  22. },
  23. //在mounted周期同时发送两个请求,并在请求都结束后,输出结果
  24. mounted:function(){
  25. var me = this;
  26. this.$axios.all([me.getAllTask(),me.getAllCity()])
  27. .then(me.$axios.spread(function(allTask, allCity){
  28. console.log('所有请求完成')
  29. console.log('请求1结果',allTask)
  30. console.log('请求2结果',allCity)
  31. }))
  32. }

查看控制台输出情况

两个请求执行完成后,才执行axios.spread()中的函数,且axios.spread()回调函数的的返回值中的请求结果的顺序和请求的顺序一致

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/815102
推荐阅读
相关标签
  

闽ICP备14008679号