使用場景: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);
});
}複製代碼
複製代碼