自家製のイベントemmiter


エクスポートクラスmyEmmiter { コンストラクタ(){
この .listeners = []; この .laterListeners = []; } (イベント、FUNC){上の 場合(!{.listeners [イベント]) この .listeners [イベントは] = []。 } であればこの .laterListeners.length> 0 ){ // 在有リスナー之前有emmit的情况 この.listeners [イベント] .push(FUNC)。 この .laterListeners.forEach((アイテム)=> { この.emit(item.event、item.message) }) } これは、[イベント] .push(FUNC)を.listeners。 } {(イベント、メッセージ)を放出する 場合(!{.listeners [イベント]) // 如果未注册EMIT了、保存起来先 せ後で= { イベント:イベント、 メッセージ:メッセージ } この.laterListeners.push(後) ; 返します } であればこの .listeners [イベント] .LENGTH> 0 ){ この .listeners [イベント] .forEach(要素=> { 場合(メッセージ){ 要素(メッセージ) } }); } } }
//做个单例 emmiterてみましょう。 輸出
関数getEmmiter(){ 場合(!emmiter){ emmiter = 新しいmyEmmiter(); } 戻りemmiter。 } エクスポートCONST eventEmmiter = getEmmiter()。

 

おすすめ

転載: www.cnblogs.com/xinfangzhang/p/11417255.html