今天自己来实现一下promise.all方法的实现;
先来看MDN官网对promise.all方法的介绍:
![69f0f34e1a99810d1b29a6fedf1b808a.png](https://i-blog.csdnimg.cn/blog_migrate/341546e483492fdd573ad878ab2b2276.jpeg)
简单理解,当参数中的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 = > {