头条前端 二面程序题
class Scheduler { add(promiseCreator) { // 需要实现 } } const timeout = (time) => new Promise(resolve => { console.log('in timeout:', time); 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
题目要求任务并行完成,同时并行的任务不能超过两个。
面试官人超好,一直在引导我,奈何我太菜,求大佬讲解一下这道题。
#笔试题目##字节跳动#