2024-8-21 滴滴二面

感觉面试确实挺分人的,问的都不一样

问题

  • 自我介绍
  • 实现一个调度器,没写出来,太久没看了
//JS实现一个带并发限制的异步调度器Scheduler,保证同时运行的任务最多有两个。完善代码中Scheduler类,使得以下程序能正确输出
class Scheduler {
  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

  • 实现一个 Task
class Task {
  constructor() {}
  add(fn, context, ...args) {}
  run() {}
  stop() {}
}

function task1(next) {
  setTimeout(() => {
    console.log('red')
    next()
  }, 3000)
}

function task2(next, b) {
  setTimeout(() => {
    console.log(b)
    next()
  }, 1000)
}

function task3(next, c) {
  setTimeout(() => {
    console.log('yellow')
    next()
  }, 2000)
}

let task = new Task()
task.add(task1).add(task2, null, 3).add(task3)
task.run()

  • 实现一个函数,可以讲普通函数转成 promise 函数
  • pinia 的原理,以及 a、b 组件都用了他的数据,a 更新了一个数据后,改变的过程
  • vue 组件之间传值
  • 简历里面的 tailwind 做的什么、多仓库怎么复用
  • 工程化配置,webpack、vite 相关
  • 团队有多少人,主要负责的工作
  • 遇到的困难、解决思路
  • 简历提到的下载性能优化,还有什么方法可以优化的吗 缺少具体的量化数据

反问

  • 开头问的俩个手写的具体场景 微信小程序有并发限制,请求优先级
  • 具体做什么 业务+小程序自研框架
全部评论

相关推荐

3 11 评论
分享
牛客网
牛客企业服务