我创建的类设置了一个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
的功能,但是我不知道如何实现它。 最佳答案
您可以具有分配给on
的this.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/