今天自己来实现一下promise.all方法的实现;
先来看MDN官网对promise.all方法的介绍:
简单理解,当参数中的promise有一个失败了就直接返回失败的结果,返回第一个失败的结果,都成功返回所有的参数结果;
上代码:
function promiseAll(promises){// 返回一个promise实例return new Promise((resolve, reject) => {// 做一个判断参数是否是数组if(!Array.isArray(promises)){return reject(new TypeError('arguments must be Array'))}let count = 0,newValues = new Array(promise.length) // 接收新的结果参数 建立一个伪数组for(let i = 0; i < promises.length; i++){ // 运用promise特性 只会有一个状态Promise.resolve(promises[i]).then(res = > {count+