当前位置:   article > 正文

javascript封装promise限制请求并发数_前端js并发请求封装

前端js并发请求封装

背景:页面中需要同时发送10个请求,但是服务器限制,需要前端控制并发数,保证每次只能发送2个,直至所有请求全部发送完毕。

1、可以使用  async-pool 组件库

2、如若自己实现,思路:每次发送2条请求,请求成功则从请求队列中取一个,请求失败则再放入请求队列等待再次请求。

具体代码如下:

  1. const reqQueue = [1,2,3,4,5,6,7,8,9,10]; // 请求队列
  2. const handleRequest = (queue, callback) => {
  3. const result = []; // 请求结果
  4. let ajaxNum = 0; // 请求并发 计数器
  5. const length = queue.length; // 请求总数
  6. const newPromise = (id) => {
  7. return new Promise((resolve,reject) => {
  8. setTimeout(() => {
  9. resolve(`${id}的结果`);
  10. }, 1000);
  11. })
  12. }
  13. const newPromiseAll = (queue) => { // 封装控制并发函数
  14. while (ajaxNum < 2 && queue.length > 0)
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号