无法知道。但你不是可以在每个任务结束时获取进度嘛。
let successCount = 0, failCount = 0;
Promise.all([
request1()
.then((res) => {
successCount++;
return Promise.resolve(res);
})
.catch((err) => {
failCount++;
return Promise.reject(err);
}),
request2()
.then((res) => {
successCount++;
return Promise.resolve(res);
})
.catch((err) => {
failCount++;
return Promise.reject(err);
})
]);
或者觉得太啰嗦可以抽一个方法出来:
function dosomething(tasks = []) {
let successCount = 0, failCount = 0;
return Promise.all(
tasks.map(func => {
return func()
.then((res) => {
successCount++;
return Promise.resolve(res);
}).catch((err) => {
failCount++;
return Promise.reject(err);
})
})
);
}
dosomething([request1, request2]);
P.S. 两个 count 仅为统计,你可以自己加上回调函数之类的逻辑。
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…