7.12百度提前批前端一面

7.24更新 二面面试官才休假回来, 1面过了10几个,横向比较G了 7.19 一面过了 等着约二面

  1. 自我介绍
  2. 项目相关
  • 聊天室支持群聊吗
  • 实时通信实现方式 -夸路由组件的应用场景
  • 保存状态其他方式也能做,为什么要这么做
  1. 前端框架脚手架
  2. monorepo
  3. Vite 和 Webpack区别, 知道多少说多少
  4. Vite首次加载如何优化 (懒加载?)
  5. 子依赖中依赖了父依赖已经安装过的依赖怎么避免重复安装
  6. React useMemo useCallBack 区别,应用场景
  7. useState setState 是异步还是同步 这样做的原因
  • 还有的可能忘了
  1. 实习相关
  2. 写题
// JS实现一个带并发限制的异步调度器Scheduler,
// 保证同时运行的任务最多有两个。
// 完善代码中Scheduler类,
// 使得以下程序能正确输出

class Scheduler {
  constructor() {
   this.count = 2
   this.queue = []
   this.run = []
  }


  add(task) {
    
  }
 }
 
 
 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')
 // output: 2 3 1 4
 
 // 一开始,1、2两个任务进入队列
 // 500ms时,2完成,输出2,任务3进队
 // 800ms时,3完成,输出3,任务4进队
 // 1000ms时,1完成,输出1
 // 1200ms时,4完成,输出4
//答案
class Scheduler {
 constructor() {
   this.count = 2
   this.queue = []
   this.run = []
 }

 excute(task) {
   this.run.push(task)
   Promise.resolve(task()).then(() => {
     task.resolve()
     this.run.splice(this.run.findIndex(task), 1)
     if (this.queue.length) {
       this.excute(this.queue.shift())
     }
   })
 }

 add(task) {
   return new Promise((resolve, reject) => {
     task.resolve = resolve
     if (this.run.length < this.count) {
       this.excute(task)
     } else this.queue.push(task)
   })
 }
}

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')

12.反问 业务: 办公工具 AI接入软件

#提前批##百度##百度信息集散地#
全部评论
楼主985?听说只有985才有面试?
3 回复 分享
发布于 2023-07-13 00:11 北京
lz情况如何
1 回复 分享
发布于 2023-07-14 14:44 江苏
好难
点赞 回复 分享
发布于 2023-07-13 08:15 浙江
这才是正常的面试,不想我春春kpi
点赞 回复 分享
发布于 2023-07-13 08:17 北京
add里面task.resolve = resolve是什么意思,有无大佬解释一下。 在reslove里面放一个定时器是不是会等定时器结束再执行缓存的副作用
点赞 回复 分享
发布于 2023-07-13 10:20 广东
投的北京吗
点赞 回复 分享
发布于 2023-07-14 00:25 北京
子依赖中依赖了父依赖已经安装过的依赖怎么避免重复安装这个怎么答
点赞 回复 分享
发布于 2023-07-14 19:23 广东
一面后多久能有后续啊
点赞 回复 分享
发布于 2023-07-19 13:54 河南
唉,难顶
点赞 回复 分享
发布于 2023-07-20 11:02 湖北

相关推荐

不愿透露姓名的神秘牛友
2024-12-27 22:35
点赞 评论 收藏
分享
2024-12-31 17:16
北京邮电大学 golang
点赞 评论 收藏
分享
评论
19
70
分享

创作者周榜

更多
牛客网
牛客企业服务