2. class Scheduler { constructor(parallelCount = 2) { this.parallelCount = parallelCount; this.runningCount = 0; this.task = []; } add(task) { return new Promise((resolve, reject) => { this.task.push({ task, resolve, reject, }); this._run(); }); } _run() { if (this.task.length > 0 && this.runningCount < this.parallelCount) { const { task, resolve, reject } = this.task.shift(); this.runningCount++; task() .then(resolve, reject) .finally(() => { this.runningCount--; this._run(); }); } } }
点赞 评论

相关推荐

06-05 00:54
已编辑
北京邮电大学 前端工程师
蹲个女生舍友,杭州西溪。--------------以下是正文--------------先说一下我个人情况,北邮通信工程,我在本科的时候做过几个微信小程序,忘光了。在今年2月份开始极速学习前端基础。代码算法方面,研一和大四的时候跟着代码随想录刷过一次。轻微流水账,这是一个记录贴。初衷希望能给0实习转码的同学一些鼓励,相信一定能找到愿意培养自己的公司。第一次找工作没什么经验,秋招会及时复盘面经发出来,这次就先不弄了。我从1月份就开始调研咋学习前端,开始慢悠悠学习html和css知识,到二月份开学了才开始对暑期实习感到十分的担忧,开始拼命学js。之前就接触过相关内容所以学的很快,半个月左右就学完了。然后就开始一边学习react一边做项目。4月初开始陆续投递,等了一周就开始有面试了。第一个面的美团,上来就是一个hard代码题,hot100还没刷完的我感到十分挫败。五月中旬之前,我一直处于反复一面的状态。基本上一天三面。晚上还得做笔试。崩溃边缘,但是还得鼓励(欺骗)自己下周必拿offer。或许是乐观的心态,让我在16号以后开始收到一些公司的二面了。包括美团,阿里(智能信息),腾讯,字节。我非常高兴,说明我五一不出去玩,恶补八股和手撕是真的有用。运气好了之后就开始一直破天荒的好。我阿里的淘天和阿里云也进二面了。我记得自己虽然表现的还行,但是整体并不突出。5月20/21号,这两天是小情侣过节的日子。我记得我20号面了美团,阿里智能信息二面,21号面了腾讯,字节,淘天二面,晚上还做了一个笔试。累的半死的同时,实验室导师还在催我的科研进度,我回复:好的。没想到,阿里智能信息居然问了我通信原理,本科学科等很多很泛的问题。我以为要凉了,结果没过一个小时,hr联系我:你好,你的二面已经通过,需要您再做一个线上笔试。我欣喜若狂,不敢相信二面居然问这些都能过。笔试做完了之后,也是立马有hr联系我,约hr面。5月22号,hr面。当场发offer,我整个人都懵了。心里怀疑对方是不是诈骗公司,然后又反复确认。缓了半天,才发现自己居然能去阿里了。简直是做梦都不敢想。我记得我前几天面试压力太大,还梦到过实验室组会汇报自己的offer进度,大家都去阿里。而我连甚至一个offer都没有可以汇报。当场吓醒。最后必须说,阿里真的太好了,愿意相信实习生的潜力,真的给了很多0实习的同学实习机会。我永远是阿里孝女!!!!!---------------分割线-----------记录一下自己转码以来遇到的一些贵人。1.字节的一面面试官,在我最崩溃的时候给了我鼓励和肯定。当时给我面了一个半小时。最后我问他对建议的时候,他说,“你是候选人里面算是比较优秀的了,但是我们这个业务要求很高,我担心把你招进来影响你的成长。”并且还给我推荐学习资料,红宝书。还和我说,“如果你想要继续做前端的话,我可以告诉你,前端依然是十分有前途的方向,希望你可以继续努力。”他的话真的十分中肯。当时我甚至感动哭了,我非常清楚自己不是因为被拒绝哭了(毕竟其实已经麻了)2.腾讯的一位面试官。给了我很多叮咛,告诉我准备好在面试等等。让我感觉十分有力量,我当时觉得我身边那么多帮助我的好人,我怎么可能不成功呢。3.北邮的一位学长,他在一开始给了我职业选择方面的建议,让我坚定了自己的道路。4.我遇到的每一个面试官都出奇的好,没有因为我很菜就表现不耐烦,十分感恩他们的手下留情。5.感谢有对象的陪伴,让我有好好吃饭的动力,并且也一直督促我学习,还帮我把一些高频的手撕和高频的计算机相关的八股梳理出来。有的时候真的想放弃,但是他一直在我旁边和我说,一定要坚持,不能放弃。
点赞 评论 收藏
分享
飞书前端一面面经:从基础到实战的技术碰撞一、面试初印象这次飞书前端一面给我的整体感受是节奏紧凑且直击技术核心。面试官风格沉稳,问题由浅入深,既考察基础能力,又注重解决实际问题的思维,是一次很有价值的技术交流。二、面试问题复盘1.&nbsp;CSS&nbsp;基础考察面试官开场便询问我&nbsp;CSS&nbsp;基础掌握程度,我坦诚表示“不是很好”,随后进入具体问题:如何实现三列布局,要求两边宽度固定,中间宽度自适应。我首先提到可以用&nbsp;JavaScript&nbsp;监听窗口变化动态调整宽度,但面试官希望用纯&nbsp;CSS&nbsp;方案。我迅速想到&nbsp;Flex&nbsp;布局,并详细解释了实现思路:.container&nbsp;{display:&nbsp;flex;}.left,&nbsp;.right&nbsp;{width:&nbsp;200px;&nbsp;/*&nbsp;固定宽度&nbsp;*/}.center&nbsp;{flex:&nbsp;1;&nbsp;/*&nbsp;自动分配剩余空间&nbsp;*/}接着,面试官追问&nbsp;calc()&nbsp;函数是否了解,由于平时使用较少,我仅简单说明了它能进行四则运算,用于动态计算&nbsp;CSS&nbsp;属性值,比如&nbsp;width:&nbsp;calc(100%&nbsp;-&nbsp;400px);&nbsp;可以配合实现响应式布局。2.&nbsp;项目与性能优化探讨当被问到&nbsp;项目中的性能优化经验&nbsp;时,我如实反馈:目前实习项目和个人项目经验较少,尚未深入接触性能优化模块。面试官没有追问,而是迅速切入算法题环节。3.&nbsp;算法与代码实现题目1:封装&nbsp;Promise&nbsp;重试函数要求实现一个函数,传入请求的&nbsp;Promise&nbsp;和请求次数,请求失败时自动重试,达到次数上限后不再发起请求。我给出如下代码:function&nbsp;retryPromise(promise,&nbsp;times)&nbsp;{let&nbsp;count&nbsp;=&nbsp;0;return&nbsp;new&nbsp;Promise((resolve,&nbsp;reject)&nbsp;=&amp;gt;&nbsp;{const&nbsp;run&nbsp;=&nbsp;()&nbsp;=&amp;gt;&nbsp;{promise.then(resolve).catch((error)&nbsp;=&amp;gt;&nbsp;{if&nbsp;(count&nbsp;&amp;lt;&nbsp;times&nbsp;-&nbsp;1)&nbsp;{count++;run();}&nbsp;else&nbsp;{reject(error);}});};run();});}题目2:实现对象深拷贝我先写出基础版本:function&nbsp;deepClone(obj)&nbsp;{if&nbsp;(typeof&nbsp;obj!==&nbsp;'object'&nbsp;||&nbsp;obj&nbsp;===&nbsp;null)&nbsp;{return&nbsp;obj;}let&nbsp;result&nbsp;=&nbsp;Array.isArray(obj)?&nbsp;[]&nbsp;:&nbsp;{};for&nbsp;(let&nbsp;key&nbsp;in&nbsp;obj)&nbsp;{if&nbsp;(obj.hasOwnProperty(key))&nbsp;{result[key]&nbsp;=&nbsp;deepClone(obj[key]);}}return&nbsp;result;}面试官进一步要求&nbsp;考虑边界情况,我补充说明:若对象属性为数组,需递归处理数组元素;若属性为函数、正则等特殊类型,需特殊处理。例如,对于函数可直接返回原函数,对于正则可创建新的正则实例。三、反问环节我向面试官提出疑问:“为什么在前端面试中如此看重&nbsp;CSS&nbsp;基础?”面试官耐心解答:“CSS&nbsp;是前端页面布局和视觉交互的基石,良好的&nbsp;CSS&nbsp;能力能确保页面高效渲染和兼容性,是支撑复杂业务开发的基础,所以我们会重点考察。”四、面试结果与总结幸运的是,面试结果显示&nbsp;已通过一面。回顾过程,坦诚承认自身不足并积极思考问题,以及在算法题中清晰的逻辑表达是关键。后续准备二面时,我将重点补足&nbsp;CSS&nbsp;知识盲区,积累项目实战经验,尤其关注性能优化相关技术,同时加强对&nbsp;JavaScript&nbsp;细节和边界场景的理解。这次面试也让我深刻认识到,扎实的基础和灵活的思维永远是技术面试的核心竞争力。
查看5道真题和解析
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务