流云827 level
获赞
12
粉丝
2
关注
4
看过 TA
9
西华大学
2015
前端工程师
IP属地:未知
暂未填写个人简介
私信
关注
2021-02-25 10:35
已编辑
西华大学 前端工程师
由于面试官在国外,遂采用的视频面试。 1.自我介绍; 2.职业规划; 3.为什么选择字节跳动; 4.最近的项目中有什么是你优化的地方。 5.编程题: JS实现一个带并发限制的异步调度器Scheduler,保证同时运行的任务最多有两个。完善代码中Scheduler类,使得以下程序能正确输出。 class Scheduler {   add(promiseCreator) { ... }   // ...}const timeout =&...
永永的黄จุ๊บ:边收集边执行,在任务完成回调之前,最多只能有两个 class Scheduler { constructor() { this.taskArr = [] this.count = 0 } add(promiseCreator) { return new Promise((resolve, reject) => { this.taskArr.push({promiseCreator, resolve}) this.run() }) } run() { if(this.taskArr.length && this.count < 2) { this.count ++ let {promiseCreator, resolve} = this.taskArr.shift() Promise.resolve(promiseCreator()).then(() => { resolve() this.count -- this.run() }) } } } const timeout = (time) => new Promise(resolve => { setTimeout(resolve, time) }) const scheduler = new Scheduler() const addTask = (time, order) => { scheduler.add(() => timeout(time)) .then(() => console.log(order)) } addTask(1000, '1') addTask(500, '2') addTask(300, '3') addTask(400, '4')
投递字节跳动等公司6个岗位 >
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客企业服务