axios和Promise.all 配合使用

使用場景:ios

因爲項目中原本一個接口獲取到的數據,被拆分到了多個接口,可是還要能所有返回數據以後才能作頁面顯示,雖然發不少http請求會慢,可是由於是異步的,並且符合業務需求,因此想到了使用promise All。axios

使用方法:promise

//拼接get請求地址
function getData(groupId)
{     
//獲取數據 
  let queryStr='http://10.**.**.**/data.aspx?mdid=ModelData&groupid='+groupId+'date='+new Date().getTime()  
  return queryStr;
}複製代碼

//返回多個axios請求promise;
function getPromiseArray(groupIds)
{ 
  let promiseArray=[];
  for (let groupId of groupIds){
    const promiseEach=axios.get(getWfsByGroupId(groupId),
    { 
    withCredentials: true
    });       
  promiseArray.push(promiseEach);  
  }
  return promiseArray;
    
}複製代碼

//http所有返回以後,獲取返回數據
function getAllWfs(groupIds,callBack){ 
let allWfs={};   
Promise.all(getPromiseArray(groupIds)).then(function(values) {
for(let i=0;i<values.length;i++)
   { 
  let str=JSON.parse(values[i].data);
   }  
    
 }   
callBack(allWfs);  
 }); 
}複製代碼

複製代碼
相關文章
相關標籤/搜索