gpt4 book ai didi

Javascript - 如何监听来自不同回调函数的类参数更改

转载 作者:行者123 更新时间:2023-12-01 01:20:26 25 4
gpt4 key购买 nike

我创建了一个类,设置了 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功能不够灵活。

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

  1. 创建一个类并设置参数:

    aTimer = new timer(50, 回调);

  2. 设置监听.on回调函数:

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

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

最佳答案

您可以有一个分配给 this.secCallbackon 方法。在时间间隔内,检查 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 - 如何监听来自不同回调函数的类参数更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54285485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com