axios并行请求

有些操作需要在几个异步请求都完成之后再执行,虽然一个Ajax可以放到另一个Ajax完成的回调里面,但这样很容易导致回调地狱,且代码也极其不美观。

幸运的是axios提供了并行请求的方法,

使用方法:

1.先准备好多个请求,如get,放入一个数组中,[axios.get(url1),  axios.get(url2),  axios.get(url3)]

2.把请求数组放入axios.all中调用

3.在回调的参数是一个数组,分别对应各请求的结果

代码: 

 1 let urls = [
 2         'https://jsonplaceholder.typicode.com/posts/1',
 3         'https://jsonplaceholder.typicode.com/posts/2',
 4         'https://jsonplaceholder.typicode.com/posts/3'
 5       ]
 6       let axiosList = []
 7       urls.forEach(url => {
 8         axiosList.push(axios.get(url))
 9       })
10       axios.all(axiosList).then(function (res) {
11         let p1 = (res[0].data)
12         let p2 = (res[1].data)
13         console.info(p1)
14         console.info(p2)
15       })

 也可以使用spread把请求进行分割,这样注意回调里面的参数会有不同。

1 axios.all(axiosList).then(axios.spread(function (res1, res2, res3, res4) {
2         let p1 = (res1.data)
3         let p2 = (res2.data)
4         console.info(p1)
5         console.info(p2)
6       }))

附axios的post使用示例:  

1 axios.post(url,{
2       username: 'admin',
3       password: '1230'
4     }).then(res => {
5       console.info(res.data)
6     }).catch(res =>{
7       console.info(res)
8     })
原文地址:https://www.cnblogs.com/jyughynj/p/11225394.html