JS控制并发请求数量

发布时间:2022-06-08 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了JS控制并发请求数量脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
//链接
    const arr_url = [
      { url: 'url0', time: 3 },
      { url: 'url1', time: 3 },
      { url: 'url2', time: 3 },
      { url: 'url3', time: 3 },
      { url: 'url4', time: 3 },
      { url: 'url5', time: 3 },
      { url: 'url6', time: 0 },
      { url: 'url7', time: 3 },
    ]
  //请求 fetch fn
    const ajax = ({ url, time }) => {
      return new Promise((res, reject) => {
        setTimeout(() => {
          console.LOG(url);
          if (url == 'url3') {
            reject('失败了')
          }
          else {
            res('成功了')
          }
        }, time * 1000)
      })
    }
 

//do fecth
    const getimg = arr => {
      const arr_result = []
      const fetchall = async (idx) => {
        if (arr_result[idx]) {
          idx++
          await fetchall(idx)
        } else {
          arr_result[idx] = 1
          ajax(arr[idx])
            .catch(r => console.log('Error', r))
            .finally(r => {
              if (idx > arr.length) return
              idx++
              if (arr[idx]) {
                fetchall(idx)
              }
            })
        }
      }
      fetchall(0)  //根据并发限制设定执行初始请求函数
      fetchall(1)
    }
    getimg(arr)
 
 

ps:这是最终版本,最初的时候少个async和awaIT,怎么弄都不对,后面查资料修改了,就没问题了,参考地址

 

脚本宝典总结

以上是脚本宝典为你收集整理的JS控制并发请求数量全部内容,希望文章能够帮你解决JS控制并发请求数量所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。