NodejsのEventEmitter

1166 ワード

EventEmitterはnodejsコアの一部です.多くのnodejs対象者はEventEmitterから継承されています.イベントの処理とフィードバックに用いられます.APIの例を見てください.
var util = require("util");
var events = require("events");//EventEmitter  events     

function MyStream() {//     
    events.EventEmitter.call(this);
}

util.inherits(MyStream, events.EventEmitter);//      EventEmitter

MyStream.prototype.write = function(data) {//       
    this.emit("data", data);//      "data"  
}

var stream = new MyStream();

stream.on("data", function(data) {//     ,    "data"  
    console.log('Received data: "' + data + '"');
})
stream.write("It works!"); // Received data: "It works!"
EventEmitterを継承することにより、対象として関連イベントを登録したり、トリガーしたりすることができます.
Rubyと比較して、blockで実現できます.
class MyStream
  def write(data)
    yield data
  end
end

stream = MyStream.new
stream.write('It works!') do |data|
  puts "Received data: #{data}"
end