Javascript EventEmitter即使在删除处理程序后也会调用该处理程序
我有两个名为sayJavascript EventEmitter即使在删除处理程序后也会调用该处理程序,javascript,node.js,events,eventemitter,Javascript,Node.js,Events,Eventemitter,我有两个名为sayA和B的类,它们都有两个名为start和done的方法。我创建了这两个类的实例 var a = new A(); var b = new B(); 我将b上的start事件和done事件绑定到a aemitsstartsob.start被调用,bemitsdonesoa.done被调用。这个过程一直持续到a.done决定并停止发出start。它可以正常工作,直到只有一个B实例 当我创建两个B实例时b.启动比应该的时间多触发一次 有趣的是,当我在零毫秒的setTimeout()
A
和B
的类,它们都有两个名为start
和done
的方法。我创建了这两个类的实例
var a = new A();
var b = new B();
我将b
上的start
事件和done
事件绑定到a
a
emitsstart
sob.start
被调用,b
emitsdone
soa.done
被调用。这个过程一直持续到a.done
决定并停止发出start
。它可以正常工作,直到只有一个B
实例
当我创建两个B
实例时<代码>b.启动比应该的时间多触发一次
有趣的是,当我在零毫秒的setTimeout()
内发出done
时,它工作得非常好
我不确定我是否解释正确。请说明原因。我尝试了很多东西,但都没有告诉我为什么添加
setTimeout
会有帮助。JSFiddle?我怀疑这可以追溯到您是如何实现start
和done
。。。但没有代码可以查看atI将尝试在fiddle上制作一个示例。我只是想看看这是否是一个已知的问题。可能是重复的