码迷,mamicode.com
首页 > 其他好文 > 详细

同时允许最大任务量

时间:2020-08-03 00:45:36      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:final   dex   return   bsp   script   finish   --   finally   strong   

function limitRequest(tasks,n){
    return new Promise((resolve,reject) => {
        let index = 0//当前第几个执行
        let start = 0//当前执行几个
        let finish = 0//总共执行完几个
        let arr = []//执行完结果
        let run = () => {
            if(finish == tasks.length){
                resolve(arr)
                return
            }
            while(start <= n && index < tasks.length){
                start++
                let cur = index
                tasks[cur]().then((res) => {
                    arr[cur] = res
                }).catch((err) => {
                    arr[cur] = err
                }).finally(()=>{
                    index++
                    finish++
                    start--
                    run()
                })
            }
        }
        run()
    })
}

可能有些问题,如发现问题,望指正!!!

 

同时允许最大任务量

标签:final   dex   return   bsp   script   finish   --   finally   strong   

原文地址:https://www.cnblogs.com/zhenjianyu/p/13423860.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!