2017-10-24 4 views
0

'poof1'イベントをタイムアウトなしに取得する適切な方法は何ですか?今は「poof2」だけが起動します。あなたがイベント(.emit新しいインスタンスのEventEmitter

装着するリスナーに時間を与えて遅れているため、タイムアウトが動作している内にラップ1を放出した後

function Em(cfg){ 
    let event = new EventEmitter(); 

    event.emit('poof1'); 

    setTimeout(() => { 
     event.emit('poof2'); 
    }, 1000); 

    return event; 
} 

let em = new Em(); 
em.on('poof1',() => { 
    console.log('event 1'); 
}); 

em.on('poof2',() => { 
    console.log('event 2'); 
}); 

答えて

0

あなたはpoof1リスナー(.on)を取り付けています。

は、私は、この構造を維持したい場合は少しあなたのコード

let em = new EventEmitter(); 
em.on('poof1',() => { 
    console.log('event 1'); 
}); 

em.on('poof2',() => { 
    console.log('event 2'); 
}); 

event.emit('poof1'); 
event.emit('poof2'); 
+0

しかし、何をリファクタリングしてみてください? let em = new Em(); em.on( 'poof1'、()=> {}); em.on( 'poof2'、()=> {}); –

+0

EM機能の意味がわかりません。使用していないcfgパラメータがあります。必要に応じてコードを変更することができますが、イベントを発行する前にリスナーを宣言する必要があります。それ以外の場合は、リスナーがイベントをキャッチする可能性はありません – Karim

関連する問題