关于带并发数限制的fetch请求函数
【摘要】 碰巧遇到个类似的场景,在控制台里下载一些东西,用promise一个一个下载感觉太慢,一次性都请求出去,由于连接数限制,后面的请求大概率失败;所以需要一个带并发限制的fetch请求函数;下面参考的帖子的场景思路上是合适的,不过我还要对不同的请求执行不同类型的回调,所以需要改造下。初步的结构大概是这个样子的:let pending_count = 0;let max = 5;let urls =...
碰巧遇到个类似的场景,在控制台里下载一些东西,用promise一个一个下载感觉太慢,一次性都请求出去,由于连接数限制,后面的请求大概率失败;所以需要一个带并发限制的fetch请求函数;下面参考的帖子的场景思路上是合适的,不过我还要对不同的请求执行不同类型的回调,所以需要改造下。
初步的结构大概是这个样子的:
let pending_count = 0;
let max = 5;
let urls = []
async function _fetch(arr) {
if (!arr[0]) return;
pending_count++;
console.log(arr[0] + ':start','并发数: '+pending_count);
let response = await fetch(arr[0])
if(arr[1] == "code"){
。。。
}else if(arr[1] == "img"){
。。。
}else if(arr[1] == "md"){
。。。
}else if(arr[1] == "imgraw"){
。。。
}
pending_count--;
console.log(arr[0] + ':done','并发数: '+pending_count);
_fetch(urls.pop());
pending_count
}
function sendResquest(url,callback) {
if(pending_count < max) {
_fetch([url,callback])
} else {
urls.push([url,callback])
}
}
15行代码实现一个带并发数限制的fetch请求函数
https://blog.csdn.net/qq_33081841/article/details/88583735
23行代码实现一个带并发数限制的fetch请求函数
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)