想起前阵子遇到的一个面试题,大概意思是让实现一个任务队列。定义start/stop方法,调用这两个方法按顺序执行异步任务或者停止执行,然后定义add/delete方法可以往队列里添加或者删除异步任务,再定义pause方法可以暂停任务队列的执行,当暂停后再点start方法又可以接着暂停的任务继续执行。
这要怎么实现呢 感觉太复杂了 不知道配合Generator/Async await方法能不能实现
class MyAsyncTask {
constructor() {
this.asyncTasks = []
}
add() {
let promise = function (ms) {
return new Promise(function (resolve, reject) {
setTimeout(function () {
},ms || 2000)
})
}
this.asyncTasks.push(promise)
}
pause() {
// 暂停
}
stop() {
// 停止
}
start() {
// 开始 可以接着暂停的任务继续执行
}
}