function multiRequest(urls=[], maxNum = 5) {
const len = urls.length;
let results = new Array(len).fill(false)
let count = 0;
return new Promise((resolve, reject) => {
while(count < maxNum) {
next()
}
function next() {
let current = count++;
if (current >= len) {
!results.includes(false) && resolve(results)
return
}
const url = urls[current];
fetch(url).then(res => {
results[current] = res;
if (current < len) {
next()
}
}).catch(err => {
results[current] = err;
if (current < len) {
next()
}
})
}
})
}