问大佬一道前端题,如何解?

let doWork = (workid)=>{ 
    return new Promise(resolve=>{
        // 模拟大量任务
        setTimeout(()=>{
            console.log(workid);
            resolve(workid); 
        },10000*Math.random());
    }); 
}; 
// 请修改以下程序 
for(let i = 0; i < 30; ++i){ 
    doWork(i); 
}

doWork是个会占用有限资源(如网络连接数,CPU核数等)的函数,由于资源有限,最多只能同时运行3个doWork函数。现要执行30次doWork,请修改以下程序以满足限制#笔试题目##前端#
全部评论
这道题我也遇到过,当时面试官说的是浏览器请求数的并发限制,当时没有答出来。今天有时间查了资料实现如下: https://gist.github.com/upupming/cbc24ada6f99d41073397b3842cdd884 运行结果: ```txt start running 0 start running 1 start running 2 finished running 2 start running 3 finished running 0 start running 4 finished running 4 start running 5 finished running 1 start running 6 finished running 5 start running 7 finished running 3 start running 8 finished running 7 start running 9 finished running 6 start running 10 finished running 8 start running 11 finished running 9 start running 12 finished running 11 start running 13 finished running 10 start running 14 finished running 12 start running 15 finished running 13 start running 16 finished running 16 start running 17 ... `` 参考资料:https://gist.github.com/jcouyang/632709f30e12a7879a73e9e132c0d56b
1 回复 分享
发布于 2020-05-14 21:49

相关推荐

不愿透露姓名的神秘牛友
06-27 15:19
简历上能写3个月吗?
码农索隆:大胆写,主要你能把实习经历包装好,可以看一下我这篇帖子https://www.nowcoder.com/share/jump/4888395581180798063
点赞 评论 收藏
分享
fRank1e:吓得我不敢去外包了,但是目前也只有外包这一个实习,我还要继续去吗
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务