const realizePromiseAll = (promises: any[]) => {
return new Promise((res, rej) => {
if (!promises || !Array.isArray(promises)) {
return rej(new TypeError('arguments must be an array'));
}
let last: number = promises.length;
const result: any = [];
for (const item of promises) {
Promise.resolve(item).then((data) => {
result.push(data);
last--;
if (!last) {
return res(result);
}
}).catch((err) => {
return rej(err);
});
}
});
}
const realizePromiseRace = (promises: any[]) => {
return new Promise((res, rej) => {
if (!promises || !Array.isArray(promises)) {
return rej(new TypeError('arguments must be an array'));
}
for (const item of promises) {
Promise.resolve(item).then((data) => {
return res(data);
}).catch((err) => {
return rej(err);
});
}
});
}