有removeCurrentListener
,但没有removeListener
方法。
答案 0 :(得分:27)
我自己找到了答案。
addListener
返回EmitterSubscription
个实例,该实例扩展EventSubscription
个remove
方法。
const emitter = new EventEmitter();
const subscription = emitter.addListener('eventname', () => {});
subscription.remove(); // Removes the subscription
答案 1 :(得分:3)
实际上确实如此(除非我误解了你的问题)。
以下是我的表现方式:
class Store extends EventEmitter {
constructor(listenerKey) {
super()
this.listenerKey = listenerKey
}
emitChange() {
setTimeout(() => {
this.emit(this.listenerKey)
}, 0)
}
addChangeListener(callback) {
this.on(this.listenerKey, callback)
}
removeChangeListener(callback) {
this.removeListener(this.listenerKey, callback)
}
}