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       }))
相關文章
相關標籤/搜索