有些操做須要在幾個異步請求都完成以後再執行,雖然一個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 }))