Skip to content

Instantly share code, notes, and snippets.

@TOMOAKI12345
Created September 3, 2015 15:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save TOMOAKI12345/83a60b93ce8f42e58651 to your computer and use it in GitHub Desktop.
Save TOMOAKI12345/83a60b93ce8f42e58651 to your computer and use it in GitHub Desktop.
[Node] about EventEmitter
var EventEmitter = require('events').EventEmitter;
var util = require('util');
function EventTest() {
// see http://d.hatena.ne.jp/Jxck/20110621/1308616949
EventEmitter.call(this);
}
// EventTestはEventEmitterを継承する
util.inherits(EventTest, EventEmitter);
EventTest.prototype.log = function(data) {
console.log(data);
}
var etest = new EventTest();
// onでイベント受信
etest.on("test", etest.log);
// onceだと一回だけイベント受信
etest.once("test_once", etest.log);
// emitでイベント発行
etest.emit("test", "Hello EventEmitter");
// removeListenerでイベントを消すことができる
etest.removeListener("test", etest.log);
// 削除されているとemitしてもイベントを受け取れない
etest.emit("test", "Hello EventEmitter");
// onceに対してemitする。
etest.emit("test_once", "Hello EventEmitter Once");
// onceだと2回emitしても受信されない。
etest.emit("test_once", "This message is not shown.");
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment