今天面试一道TikTok面试题要求实现一个Schedule
类的add
方法,将同时执行的promise控制在2个以内。没想出来怎么做,我只能输出2 1。😭求指导一下嘛?
class Schedule{
add(promiseCreator){
// code
}
}
const timeout = time => new Promise((resolve)=>{
setTimeout(resolve, time)
})
const schedule = new Schedule();
const addTask = (time, order)=>{
schedule
.add(()=>timeout(time))
.then(()=>{
console.log(order);
})
}
addTask(1000, 1)
addTask(500, 2)
addTask(300, 3)
addTask(400, 4)
输出应该为2 3 1 4