如何在间隔停止时将函数重构为 return 承诺?

How to refactor a function to return a promise when an interval has been stopped?

我有以下函数在内部运行一个间隔,直到完成一些工作:

doTasks() {

 let myInterval = setInterval(() => {

  // do some work

  if(workComplete === true) {
    clearInterval(myInterval);
  }

 },500);

}

当间隔停止时,如何将此函数转换为 return 已解决的承诺?

假设您真正想要的是在清除间隔时解决承诺,而不是仅在那时返回它,您会这样做:

doTasks() {
    return new Promise(resolve => {
        let myInterval = setInterval(() => {
            if(workComplete === true) {
                clearInterval(myInterval);
                resolve()
            }
        },500);        
    })
}