axios.all和axios.spread

6/3/2020 技巧

# axios.all解决并发请求

  1. npm i axios --save-dev
  2. main.js 引入axios,挂载在原型上,全局使用
//main.js
import axios from 'axios'
Vue.prototype.$axios=axios
1
2
3
  1. 在组件中使用 axios.all() 和 axios.spread() 处理并发请求
//index.vue
methonds:{
  getOne(){
    return this.$axios.post(url,params)
  },
  getTwo(){
    return this.$axios.get(url2)
  }
}

mounted(){
  this.$axios.all([getOne(),getTwo()]).then(()=>{
    this.$axios.spread((one,two)=>{
      console.log('所有请求都完成')
      console.log('请求1结果',one)
      console.log('请求2结果',two)
    })
  })
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

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

Last Updated: 12/30/2022, 2:33:12 PM