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 年...