function concurrencyFetch(urls, maxNum) {
if (urls.length == 0) {
return Promise.resolve([])
}
let index = 0;
let result = [];
return new Promise((resolve) => {
async function _request() {
let i = index;
let url = urls[index]
index++;
try {
let res = await fetch(url)
result[i] = res;
} catch (error) {
result[i] = error;
} finally {
console.log(i, urls.length, 'xx')
if (index == urls.length) {
resolve(result);
}
if (index < urls.length) {
_request()
}
}
}
for (let i = 0; i < maxNum; i++) {
_request();
}
})
}
const urls = ['https://jsonplaceholder.typicode.com/todos/1', 'https://jsonplaceholder.typicode.com/todos/2', 'https://jsonplaceholder.typicode.com/todos/3']
concurrencyFetch(urls, 2).then((res) => {
console.log(res, 'resss');
})
根据最大并发数实现并发请求
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 1.当代种种事件不同于历史之处,在于我们不知道它们会产生什么后果。 2.经验和利益的偶然结合,往往会向人们揭示...
- 前言 Google Play应用市场对于应用的targetSdkVersion有了更为严格的要求。从 2018 年...