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

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

作者: 弱冠而不立 | 来源:发表于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