Javascript EventEmitter即使在删除处理程序后也会调用该处理程序

Javascript 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()

我有两个名为say
A
B
的类,它们都有两个名为
start
done
的方法。我创建了这两个类的实例

var a = new A();
var b = new B();
我将
b
上的
start
事件和
done
事件绑定到
a

a
emits
start
so
b.start
被调用,
b
emits
done
so
a.done
被调用。这个过程一直持续到
a.done
决定并停止发出
start
。它可以正常工作,直到只有一个
B
实例

当我创建两个
B
实例时<代码>b.启动比应该的时间多触发一次

有趣的是,当我在零毫秒的
setTimeout()
内发出
done
时,它工作得非常好


我不确定我是否解释正确。请说明原因。我尝试了很多东西,但都没有告诉我为什么添加
setTimeout
会有帮助。

JSFiddle?我怀疑这可以追溯到您是如何实现
start
done
。。。但没有代码可以查看atI将尝试在fiddle上制作一个示例。我只是想看看这是否是一个已知的问题。可能是重复的