ホームページ > ウェブフロントエンド > jsチュートリアル > node.js_node.js での Emitter.emit メソッドの使用手順

node.js_node.js での Emitter.emit メソッドの使用手順

WBOY
リリース: 2016-05-16 16:27:53
オリジナル
2638 人が閲覧しました

メソッドの説明:

イベント イベントを発行し、いくつかのオプションのパラメーターをイベント リスナーのパラメーター リストに渡します。

文法:

コードをコピーします コードは次のとおりです:

emitter.emit(event, [arg1], [arg2], [...])

パラメータを受信します:

event イベントの種類

arg1 ~ argN 渡されるパラメータ (複数)

例:

コードをコピーします コードは次のとおりです:

var events = require('events');
var エミッター = 新しいイベント.EventEmitter();

エミッター.on('someEvent', function(arg1, arg2){
console.log('listener1', arg1, arg2);
})

エミッター.on('someEvent', function(arg1, arg2){
console.log('listener2', arg1, arg2);
})

エミッター.emit('someEvent', 'byvoid', 1991);

ソースコード:

コードをコピー コードは次のとおりです:

EventEmitter.prototype.emit = function(type) {
  var er、ハンドラー、len、args、i、リスナー;
  if (!this._events)
    this._events = {};
  // 'error' イベント リスナーがない場合はスローします。
  if (type === 'error') {
    if (!this._events.error ||
        (util.isObject(this._events.error) && !this._events.error.length)) {
      er = 引数[1];
      if (this.domain) {
        if (!er) er = new TypeError('捕捉されていない、特定されていない「エラー」イベント。');
        er.domainEmitter = this;
        er.domain = this.domain;
        er.domainThrown = false;
        this.domain.emit('error', er);
      else if (エラーのインスタンス) {
        ええと投げます。 // 未処理の「エラー」イベント
      } else {
        throw TypeError('捕捉されていない、特定されていない「エラー」イベント。');
      }
      false を返します;
    }
  }
  ハンドラー = this._events[タイプ];
  if (util.isUnknown(handler))
    false を返します;
  if (this.domain && this !== プロセス)
    this.domain.enter();
  if (util.isFunction(handler)) {
    switch (arguments.length) {
      // 速いケース
      ケース 1:
        handler.call(this);
        休憩;
      ケース 2:
        handler.call(this, argument[1]);
        休憩;
      ケース 3:
        handler.call(this, argument[1], argument[2]);
        休憩;
      // 遅い
      デフォルト:
        len = 引数.長さ;
        args = 新しい配列(len - 1);
        for (i = 1; i           args[i - 1] = 引数[i];
        handler.apply(this, args);
    }
  else if (util.isObject(handler)) {
    len = 引数.長さ;
    args = 新しい配列(len - 1);
    for (i = 1; i       args[i - 1] = 引数[i];
    リスナー = handler.slice();
    len = リスナー.長さ;
    for (i = 0; i       listeners[i].apply(this, args);
  }
  if (this.domain && this !== プロセス)
    this.domain.exit();
  true を返します;
};
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート