function get100Mooncakes(){
console.time('共耗时:');
var index = 0;
var failCount = 0;
var mooncakes = [];
function getMooncake(){
return new Promise(function(resolve,reject){
Math.random() < 0.7 ? resolve(`月饼${++index}`) : setTimeout(function(){reject(`月饼${++index}获取失败`)},1000);
})
}
(function(){
return new Promise(function get(resolve,reject){
getMooncake().then(function(data){
mooncakes.push(data);
mooncakes.length < 100 ? get(resolve) : resolve(mooncakes);
},function(data){
failCount ++ ;
console.log('获取编号为 ',index,' 的月饼失败。');
get(resolve);
})
})
})().then(function(data){
console.log(data);
console.timeEnd('共耗时:');
console.log('共失败 ',failCount,' 次。');
})
}
get100Mooncakes();
