在前端会遇到需求:例如,有100个接口需要请求,但是同时发送会导致崩溃,所以需要控制同一时刻下的请求数量在3个值。

并发请求的数量控制——js实现

const limitRequest = (urls, maxNum) => {return new Promise((resolve) => {if (urls.length === 0) {resolve([]);return}// 定义数组记录每次请求的结果(无论成功失败)const results = []let index = 0;let cnt = 0;// 发送请求async function request() {if (index === urls.length) return;const i = index;const url = urls[i];index++;console.log(url);try {const response = await fetch(url);results[i] = response;} catch (err) {results[i] = err;} finally {cnt++;// 判断是否请求都完成if (cnt === urls.length) {console.log('所有请求已完成')resolve(results)}request()}}// maxNum和urls.length取最小进行调用// 将异步的并发数控制在,同一时间请求times次const times = Math.min(maxNum, urls.length);for (let i = 0; i < times; i++) {request()}})
}// 测试数据
const urls = [];
for (let i = 1; i <= 100; i++) {urls.push(`https://jsonplaceholder.typicode.com/todos/${i}`)
}
limitRequest(urls, 3).then(res => {console.log(res)
})

完成效果:同一时刻是3个请求在并发。

前端并发请求数量控制相关推荐

  1. 字节面试官:如何实现Ajax并发请求控制

    偷偷告诉你,点此抽奖送红包还送3本比红宝书还贵的书 实现一个批量请求函数 multiRequest(urls, maxNum),要求如下: • 要求最大并发数 maxNum • 每当有一个请求返回,就 ...

  2. python测试程序的qps和响应时间代码_Python并发请求下限制QPS(每秒查询率)的实现代码...

    前两天有一个需求,需要访问某API服务器请求数据,该服务器限制了QPS=2(哈哈应该都知道是哪个服务器了吧_(:з」∠)_),因为QPS很小所以就使用阻塞式请求.后来开通了服务,QPS提高到了20,阻 ...

  3. python3 爬虫例子_如何让你写的爬虫速度像坐火箭一样快【并发请求】

    开坑个新系列,主要面向新手,老司机可以忽略. 这个系列内的文章将会让你知道如何做到让你写的爬虫在运行的时候速度能像火箭一样快! 很多初学爬虫的朋友对于这方面的知识似乎是空白的,甚至还有一些在爬虫岗位上 ...

  4. 为什么浏览器会限制ajax并行请求数量,有办法突破限制吗

    1.为什么浏览器会限制 ajax 并行请求数量? 答:浏览器发出网络请求需要新开线程,而且可以发出请求的端口数量有限,从开销角度考虑不可能无限发出并发请求:此外如果浏览器不作限制,大量的请求同时发至服 ...

  5. 前端性能优化篇——浏览器http同域名并发请求对限制

    在浏览器同域名并发请求都产生并发数限制,并发限制通常是4-8以内.那么我们将来了解浏览器请求并发限制的原因和优化手段. 浏览器并发数量统计 浏览器为什么要请求并发数限制? 在了解优化手段之前我们先了解 ...

  6. 前端性能优化篇——浏览器同域名并发请求对限制

    在浏览器同域名并发请求都产生并发数限制,并发限制通常是4-8以内,那么来了解浏览器请求并发限制的原因和优化手段. 浏览器并发数量统计 浏览器为什么要请求并发数限制? 在了解优化手段之前我们先了解浏览器 ...

  7. 如何限制并发的 异步IO 请求数量?

    咨询区 Grief Coder: 我的项目中有下面一段代码: // let's say there is a list of 1000+ URLs string[] urls = { "ht ...

  8. 浏览器允许的并发请求资源数是有限制的-分析

    2019独角兽企业重金招聘Python工程师标准>>> 开始之前,我们先看下各个浏览器公布的资源并发数限制个数,如下图 浏览器的并发请求数目限制是针对同一域名的. 意即,同一时间针对 ...

  9. Web大规模高并发请求和抢购的解决方案

    电商的秒杀和抢购,对我们来说,都不是一个陌生的东西.然而,从技术的角度来说,这对于Web系统是一个巨大的考验.当一个Web系统,在一秒钟内收到数以万计甚至更多请求时,系统的优化和稳定至关重要.这次我们 ...

最新文章

  1. Lua入门系列----pil学习笔记之Getting Start
  2. 要离开苏州,一大堆东西要处理(包括租的房子)
  3. CANopen笔记1
  4. Sqoop的安装配置及工作机制
  5. 主成分分析(PCA)及其可视化——matlab
  6. dj电商-数据表的设计-商品表的设计
  7. 稳定土厂拌设备控制系统-基本介绍(图)
  8. 威逼司机二选一,是滴滴垄断,还是嘀嗒碰瓷?
  9. hdu3397 线段树 成段更新
  10. 思维导图设计测试用例
  11. 基于SSM架构的网上书城系统
  12. PDF文件怎么拆分页面
  13. 游戏账号交易平台,是专门为网络游戏提供相关交易服务的电子商务平台,主要从事网络游戏账号的交易。
  14. 告别win10,拥抱linux
  15. 银行卡卡号格式规范 每隔4为一个空格
  16. 如果有家公司给你4300的工资,每天闲得发慌,朝九晚六,周末双休,你能坚持多久?
  17. codeforces 1238
  18. 什么是知识管理?知识管理的方法?
  19. 论文翻译:2019_Speech Super Resolution Generative Adversarial Network
  20. DPDK的meter库(单速率三色算法)

热门文章

  1. 华为营收继续增长,但是增速正快速缩减,或许四季度停止增长
  2. Word2013中进行拼写和语法检查时如何设置默认校对语言
  3. 初识—Html VS Web窗体
  4. kerberos的使用
  5. eclipse各个版本简介
  6. ramdisk和linux PE,PE下建立Ramdisk盘的详细教程
  7. 检讨怎么写?检讨范文,秘密法宝帮你一分钟速写检讨
  8. 计算机网络对等网规划设计实验报告,对等网的组建_ip子网的划分实验报告_对等网络的组建...
  9. PKMS包管理服务分析-证书校验流程04
  10. 值得一看的G32加工端面螺纹编程方法,很实用!