say という名前の 2 つのクラスがA
あり、B
両方に と という名前の 2 つのメソッドがstart
ありdone
ます。両方のクラスのインスタンスを作成します。
var a = new A();
var b = new B();
start
イベント onb
とdone
イベント toをバインドしa
ます。
a
放出start
するb.start
ので呼び出され、b
放出done
するのa.done
で呼び出されます。このプロセスは、a.done
が決定して放出を停止するまで続きstart
ます。のインスタンスが 1 つだけになるまでは問題なく動作しますB
。
の 2 つのインスタンスを作成すると、B
. b.start
必要以上に 1 回余分に発射します。
興味深いことに、ゼロミリ秒done
以内に放出するsetTimeout()
と、完全に正常に動作します。
私はそれを正しく説明したかどうか確信が持てません。考えられる原因を教えてください。setTimeout
追加が役立つ理由がわからなかった多くのことを試しました。