旦旦最近开始找工作啦~~~~~
今天遇到一个挺有意思的面试题,让我用js原生实现Promise.all
因为不熟悉这个API,所以当时只是实现了全部resolve后执行回调这个功能
回来后又看了下Promise.all的详细规则和使用方法,做了亿点改进
Promise.all描述
- Promise.all(iterable) 方法返回一个 Promise 实例
- 此实例在 iterable 参数内所有的 promise 都“完成(resolved)”或参数中不包含 promise 时回调完成(resolve)
- 如果参数中 promise 有一个失败(rejected),此实例回调失败(reject),失败的原因是第一个失败 promise 的结果
JS实现all方法
function all(iterableArr) {
// 返回一个promise实例(符合第一条规则)
return new Promise((resolve, reject) => {
// resArr用来存储所有resolve的promise的res
// resolveCount用来记录成功的reolve次数
const resArr = <