summaryrefslogtreecommitdiffstats
path: root/events
diff options
context:
space:
mode:
Diffstat (limited to 'events')
-rw-r--r--events/event_emitter1.js13
-rw-r--r--events/event_emitter2.js33
2 files changed, 46 insertions, 0 deletions
diff --git a/events/event_emitter1.js b/events/event_emitter1.js
new file mode 100644
index 0000000..4bf9868
--- /dev/null
+++ b/events/event_emitter1.js
@@ -0,0 +1,13 @@
+var events = require('events');
+var ee = new events.EventEmitter();
+
+ee.on('myevent', function(msg) {
+ console.log('handling event, got ' + msg);
+});
+
+function foo() {
+ ee.emit('myevent', 'foo');
+}
+
+setInterval(foo, 1000);
+
diff --git a/events/event_emitter2.js b/events/event_emitter2.js
new file mode 100644
index 0000000..6845f2a
--- /dev/null
+++ b/events/event_emitter2.js
@@ -0,0 +1,33 @@
+var events = require('events');
+var util = require('util');
+
+function MyEventEmitter() {
+ if (false === (this instanceof MyEventEmitter))
+ return new MyEventEmitter();
+
+ /* inherit all prototype objects, methods, etc */
+ events.EventEmitter.call(this); /* hmm this calls a ctor? notice it's not a method */
+}
+/* ensure that the prototype methods of the specified superCtor are inherited into ctor */
+util.inherits(MyEventEmitter, events.EventEmitter);
+
+MyEventEmitter.prototype.poke = function(msg) {
+ this.emit('poke', 'poking ' + msg)
+}
+
+MyEventEmitter.prototype.yell = function(msg) {
+ this.emit('poke', 'yelling at ' + msg)
+}
+
+var ee = new MyEventEmitter;
+
+ee.on('poke', function(msg) {
+ console.log(msg);
+})
+ .on('yell', function(msg) {
+ console.log(msg);
+});
+
+ee.poke('kyle');
+ee.yell('bro');
+