Open theydy opened 3 years ago
const multiPromise = function(args, nums = 2) {
return new Promise(resolve => {
const list = args.slice();
const result = [];
let done = 0;
const run = async function(index, request){
const res = await request();
result[index] = res;
done++;
done === args.length - 1 && resolve(result);
list.length && run(args.length - list.length, list.shift());
}
for(let i = 0; i < nums; i++) {
list.length && run(i, list.shift());
}
})
}