之前由於後臺給的數據給的系統化,需要多次調用才能獲取所需要的全部信息。但這時,想要獲得所有數據進行邏輯處理,變得十分麻煩,不好處理
後面爲了解決這個問題。查找許多資料,現在將資料分享整理,大家也可以提點意見,有沒有更好的解決辦法
先說一下promise與axios的結合使用
check: () => {
// 返回一個promise對象
return new Promise((resolve, reject) => {
axios({
url: url
method: 'post',
data: {
}
})
.then((res) => {
resolve(res.data);
// console.log(res);
})
.catch(function (error) {
reject(error);
// console.log(error);
});
});
}
調用
check()
.then(res => {
console.log(res);
// 執行成功的回調函數
},
error => { console.log(error);
// 執行失敗的回調函數
});
處理多個異步操作時
console.time('starttime');
let p1 = new Promise((resolve, reject) => {
axios({
url: url
method: 'post',
data: {
}
})
.then((res) => {
resolve(res.data);
// console.log(res);
})
.catch(function (error) {
reject(error);
// console.log(error);
});
});
let p2 = new Promise((resolve, reject) => {
axios({
url: url
method: 'post',
data: {
}
})
.then((res) => {
resolve(res.data);
// console.log(res);
})
.catch(function (error) {
reject(error);
// console.log(error);
});
});
let p3 = new Promise((resolve, reject) => {
axios({
url: url
method: 'post',
data: {
}
})
.then((res) => {
resolve(res.data);
// console.log(res);
})
.catch(function (error) {
reject(error);
// console.log(error);
});
});
Promise.all([p1, p2, p3]).then(function(results) {
console.log('results----->', JSON.stringify(results));
console.timeEnd('starttime');
}).catch(function(err) {
console.log(err);
});