Promise.all(), Promise.race(), and Promise.any()
What multiple promise patterns are combined here?
const urls = ['api/1', 'api/2', 'api/3'];
const limits = {
concurrency: 2,
timeout: 5000
};
async function fetchWithLimits(urls, limits) {
const results = [];
for (let i = 0; i < urls.length; i += limits.concurrency) {
const batch = urls.slice(i, i + limits.concurrency)
.map(url => timeout(fetch(url), limits.timeout));
results.push(...await Promise.allSettled(batch));
}
return results;
}