一道字节的面试题,要求补全以下代码,实现一个 Scheduler 类,完成对Promise 的并发控制,使得以下代码的输出顺序是:2、3、1、4
class Scheduler {
constructor () {
}
addTask () {
}
}
const timeout = (time) => new Promise(resolve => {
setTimeout(resolve, time)
})
const scheduler = new Scheduler()
scheduler.addTask(() => timeout(1000)).then(() => console.log(1))
scheduler.addTask(() => timeout(500)).then(() => console.log(2))
scheduler.addTask(() => timeout(300)).then(() => console.log(3))
scheduler.addTask(() => timeout(400)).then(()