手写Promise.all
- 知道Promise上写而不是在原型上写
- 知道all的参数(Promise数组)和返回值(新Promise对象)
- 知道用数组来记录结果
- 知道只要一个reject就整体reject
Promise.myAll = function (list) {
const results = []
let count = 0
return new Promise((resolve, reject) => {
list.map((promise, index) => {
promise.then((r) => {
results[index] = r
count += 1
if (count === list.length) {
resolve(results)
}
},
(reason) => {
reject(reason)
}
)
})
})
}
版权声明:本博客所有文章除特殊声明外,均采用 CC BY-NC 4.0 许可协议。转载请注明出处 Roxas Deng的博客!