关于带并发数限制的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)