NodeJs簡明教程(7)

3815 ワード

NodeJs簡明教程はゼロからNodeJs関連の知識を学び、JS開発者を支援して全スタック開発技術スタックを構築します.
本論文はNodeJs簡明教程の第7編で、NodeJs eventsモジュール関連の基本的な操作を紹介します.
ほとんどのNode.jsコアAPIは、いくつかのタイプのオブジェクト(触発器、Emitter)が、関数(またはモニタ、Listener)を呼び出すためにネーミングイベントをトリガします.
クイックスタート
イベントモニターを使用すると、以下の操作が一般的に含まれます.
  • 新規イベントモニター例
  • 待ち受け関数
  • を設定します.
  • トリガ・イベント
  • const EventEmitter = require('events'); //     
    
    class MyEmitter extends EventEmitter {} //       
    
    const myEmitter = new MyEmitter();
    
    myEmitter.on('event', () => { //       
      console.log('an event occurred!');
    });
    
    myEmitter.emit('event'); //     
    上記のルーチンはan event occurred!を出力します.
    使い捨てイベント監聴
    上記の傍受方式 an event occurred!であり、一部のイベントは一回性であるかもしれない.この場合はonceを使って傍受することができます.
    const EventEmitter = require('events'); //     
    
    class MyEmitter extends EventEmitter {} //       
    
    const myEmitter = new MyEmitter();
    
    myEmitter.once('event', () => { //       
      console.log('an event occurred!');
    });
    
    myEmitter.emit('event'); //     
    myEmitter.emit('event'); //     
    上記のルーチンは1 an event occurred!を出力します.
    同じ事件を何度も傍受する
    上記の傍受方式は、1 だけが傍受関数であり、 onを介して複数の傍受関数を設定することができる.
    const EventEmitter = require('events');
    
    class MyEmitter extends EventEmitter {}
    
    const myEmitter = new MyEmitter();
    
    myEmitter.once('event', () => { //    1
      console.log('   1    ');
    });
    
    myEmitter.on('event', () => { //    2
      console.log('   2    ');
    })
    
    myEmitter.emit('event'); //     
    以上のルーチンは出力されます.
       1    
       2    
    受信イベントパラメータ
  • emit関数の最初の値は
  • である.
  • onおよびonceなどのモニター設定関数からのコールバック関数の受信値 emit
  • const EventEmitter = require('events');
    
    class MyEmitter extends EventEmitter {}
    
    const myEmitter = new MyEmitter();
    
    myEmitter.once('event', (param1,param2,param3) => { //       
      console.log('    ',param1,param2,param3);
    });
    
    myEmitter.emit('event','  1','  2',{name:'  3'}); //       
    以上のルーチンは出力されます.
           1   2 { name: '  3' }
    イベントモニターからすべてのイベントを取得します.eventNames() を使用して、モニター上のすべてのイベントを取得する.
    const EventEmitter = require('events');
    
    class MyEmitter extends EventEmitter {}
    
    const myEmitter = new MyEmitter();
    
    myEmitter.once('event', (param1,param2,param3) => {
      console.log('    ',param1,param2,param3);
    });
    
    myEmitter.once('event2',() => {
      console.log('    2');
    });
    
    console.log(myEmitter.eventNames());
    以上のルーチン出力[ 'event', 'event2' ]イベントモニターを削除off を使用して、単一のモニターを除去する.
    const EventEmitter = require('events');
    
    class MyEmitter extends EventEmitter {}
    
    const myEmitter = new MyEmitter();
    
    const callback = (param1) => {
      console.log(param1);
    };
    
    myEmitter.on('event', callback); //      
    
    myEmitter.off('event', callback); //      
    
    myEmitter.emit('event'); //     
    、上記のルーチンは , , です.
    すべてのモニターを削除removeAllListeners([eventName]) を使用します.
  • RemoveAllListener を除去すると、emitter 上の イベントモニター
  • が除去されます.
  • RemoveAllListenerが パラメータに入ったとき、emitter 上の のモニター
  • を除去する.
    おわりに
    イベントシステムはNodeJsの魂です.ほとんどのI/Oモジュールで使われています.読者の皆さんにしっかりと把握してもらいたいです.イベントモジュールを読んで疑問がありましたら、WeChatグループを追加して検討してください.