加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
13_Promise.all.js 1.01 KB
一键复制 编辑 原始数据 按行查看 历史
码仔阿杰 提交于 2022-01-12 00:10 . 新增11、12、13
const p1 = new Promise(resolve => {
setTimeout(() => {
resolve(1)
}, 1000)
})
const p2 = new Promise(resolve => {
setTimeout(() => {
resolve(2)
}, 1000)
})
Promise.all2 = function(promises) {
const len = promises.length
console.log(len)
return new Promise((resolve, reject) => {
const results = []
let count = 0
for (let i = 0; i < len; i++) {
// Promise.resolve 包一下是为了防止传递过来的不是个 Promise 的情况
Promise.resolve(promises[i]).then(
data => {
count++
results[i] = data
if (count === len) resolve(results)
},
err => {
return reject(err)
}
)
}
})
}
// Promise.all2([ p1, p2 ]).then(r => {
// console.log(r)
// })
Promise.race2 = function(promises) {
return new Promise(function(resolve, reject) {
for (let i = 0; i < promises.length; i++) {
Promise.resolve(promises[i]).then(
data => {
resolve(data)
},
err => {
return reject(err)
}
)
}
})
}
Promise.race2([ p1, p2 ]).then(r => {
console.log(r)
})
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化