functionPromiseAll(promises){if(!Array.isArray(promises)){thrownewError('promises must be an array');}returnnewPromise((resolve,reject)=>{let promiseNum = promises.length;let resolvedCount =0;//记录解决的数量let resolvedValues =newArray(promiseNum);for(let i=0; i<promiseNum; i++){
Promise.resolve(promises[i]).then(function(value){
resolvedValues[i]= value;
resolvedCount++;if(resolvedCount === promiseNum){returnresolve(resolvedValues);}},function(reason){returnreject(reason);})}})}
3.封装Promise.race
functionPromiseRace(promises){if(!Array.isArray(promises)){thrownewError('promises must be an Array');}returnnewPromise((resolve,reject)=>{
promises.forEach(p =>{
Promise.resolve(p).then(function(value){resolve(value);},function(reason){reject(reason);})})})}