有些操做须要在几个异步请求都完成以后再执行,虽然一个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 }))