可选择判断入参类型是否是Promise
const promise1 = Promise.resolve(3);
const promise2 = 42;
const promise3 = new Promise((resolve, reject) => {
setTimeout(() => resolve(100), 500);
});
const promise4 = 111;
Promise.myAll = (promiseList) => {
return new Promise((resolve, reject) => {
let list = [];
let num = 0;
for (let index in promiseList) {
Promise.resolve(promiseList[index]).then((res) => {
list[index] = res;
num += 1;
if (num === promiseList.length) return resolve(list);
});
}
});
};
Promise.myAll([promise1, promise3, promise2, promise4]).then((res) => {
console.log(res, "???????");
});