场景:请求两个没有请求依赖关系的数据源,当两个数据源都成功返回数据后,进行数据重组
方案:Promise.all()
function mockTimer(type) {
// 这里用定时器模拟,可以换为ajax请求
let result = [1, 2, 3];
let timeout = 1000;
if (type == 2) {
result = [4, 5, 6];
timeout = 2000;
} else if (type == 3) {
result = [7, 8, 9];
timeout = 3000;
}
return new Promise(resolve => {
setTimeout(() => {
console.log(result, 000)
resolve(result);
}, timeout);
})
}
async function allGet() {
let p1 = mockTimer(1);
let p2 = mockTimer(2);
let p3 = mockTimer(3);
const datas = await Promise.all([p1, p2, p3]);
console.log(datas, 5555);// 3s出结果
}
allGet();