axios并行请求

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

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

使用方法:axios

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

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

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

代码: jsonp

 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把请求进行分割,这样注意回调里面的参数会有不一样。url

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       }))
相关文章
相关标签/搜索