我创建的类设置了一个setInterval()callback()来侦听参数更改。

例如:

class timer {
    constructor(sec){
        this.sec = sec;
    };
    start(callback){
        setInterval(() => {
            callback(this.sec--);
        },1000);
    }
}


新的timer类和侦听器sec参数更改:

aTimer = new timer(50, callback);
callback(sec){
  console.log(sec);
}


但是只能在第一次调用时附加此callback,此操作callback功能不够灵活。

如何分为两个或多个部分:


创建一个类并设置参数:

aTimer = new timer(50, callback);
设置监听器.on回调函数:

aTimer.on((sec)=>{ console.log(sec); });


有些lib具有类似on的功能,但是我不知道如何实现它。

最佳答案

您可以具有分配给onthis.secCallback方法。在时间间隔内,检查this.secCallback是否存在-如果存在,请使用当前的sec进行调用:



class timer {
  constructor(sec, callback) {
    this.sec = sec;
    setInterval(() => {
      if (this.secCallback) {
        this.secCallback(this.sec);
      }
      callback(this.sec--);
    }, 1000);
  }
  on(secCallback) {
    this.secCallback = secCallback;
  }
}
const aTimer = new timer(50, sec => console.log('start callback'));

setTimeout(() => {
  console.log('new callback added');
  aTimer.on(sec => console.log('on callback'));
}, 2500);

关于javascript - Javascript-如何从不同的回调函数监听类参数的变化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54285485/

10-12 07:32