(function (){
let data=[1,2,3,4,5,6,7,8,9];
let n=4;
function executePromiseGroup(dataList,groupSize){
let _dataList_ = [...dataList];
let finalResultData = [];
return new Promise((resolve,reject)=>{
let groupIndex = 0;
let _next_ = (groupIndex)=>{
let _promise_all_data_ = _dataList_.splice(0,groupSize);
if(_promise_all_data_.length===0){
resolve(finalResultData);
return;
}
Promise.all(_promise_all_data_.map((data)=>{
return new Promise((resolve,reject)=>{
setTimeout(()=>{
if(data === 4){
resolve('模拟异步请求发生错误啦:'+data);
}else{
resolve('group_index:'+groupIndex+'>>'+data);
}
},100);
//此处处理异步请求,在此处catch异步异常情况,然后resolve
});
})).then((resultDataList)=>{
finalResultData = finalResultData.concat(resultDataList);
_next_(++groupIndex);
});
}
_next_(groupIndex);
});
}
executePromiseGroup(data,n).then((data)=>{
console.log(data);
})
}());
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…