美文网首页
实现一个函数实现最大的控制并发请求数

实现一个函数实现最大的控制并发请求数

作者: 弱冠而不立 | 来源:发表于2021-03-18 15:44 被阅读0次

写一道笔试题碰见的,简要概括就几点:

  • 请求并发
  • 每次都有个最大请求上限

我当时的思路就是:

  • 并发用 promise.all 控制
  • 使用 idx 变量,然后 while 循环。当 idx > AllFetchNums 则跳出循环,否则就 idx += max

我的具体实现如下:

     // 一个异步请求的示例
    const fetchDemo = fetch("https://mock.cangdu.org/mock/5fa25923bcab7337c1b1c274/simple_shopping/product_list")

    // 总共需要请求的次数
    const lens = 23;
    // 每次最大的请求数量
    const max = 5;

    // 假设有这么多次的请求
    const fetchDemoArr = new Array(lens).fill(fetchDemo);
    // 设定下标
    let idx = 0;
    // 当 idx 小于总共次数的时候就进行循环处理
    while(idx < lens) {
        // 每次都取到最大的请求数量
        const curArr = fetchDemoArr.slice(idx, idx + max);
        // 使用 promise.all 进行并发请求
        Promise.all(curArr)
            .then(
                res => {
                    console.log(res);
                })
            .catch(
                err => {
                    console.log(err);
                }
            )
        // 下标累加
        idx += max;
    }

如果有什么纰漏和建议,希望能给点建议。

相关文章

网友评论

      本文标题:实现一个函数实现最大的控制并发请求数

      本文链接:https://www.haomeiwen.com/subject/icdycltx.html