如何控制异步任务队列的 add/delete/start/stop/pause 执行问题?

想起前阵子遇到的一个面试题,大概意思是让实现一个任务队列。定义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() {
    // 开始 可以接着暂停的任务继续执行
  }
}
阅读 1.1k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题