First commit
This commit is contained in:
57
hGameTest/node_modules/sockjs-client/lib/event/emitter.js
generated
vendored
Normal file
57
hGameTest/node_modules/sockjs-client/lib/event/emitter.js
generated
vendored
Normal file
@@ -0,0 +1,57 @@
|
||||
'use strict';
|
||||
|
||||
var inherits = require('inherits')
|
||||
, EventTarget = require('./eventtarget')
|
||||
;
|
||||
|
||||
function EventEmitter() {
|
||||
EventTarget.call(this);
|
||||
}
|
||||
|
||||
inherits(EventEmitter, EventTarget);
|
||||
|
||||
EventEmitter.prototype.removeAllListeners = function(type) {
|
||||
if (type) {
|
||||
delete this._listeners[type];
|
||||
} else {
|
||||
this._listeners = {};
|
||||
}
|
||||
};
|
||||
|
||||
EventEmitter.prototype.once = function(type, listener) {
|
||||
var self = this
|
||||
, fired = false;
|
||||
|
||||
function g() {
|
||||
self.removeListener(type, g);
|
||||
|
||||
if (!fired) {
|
||||
fired = true;
|
||||
listener.apply(this, arguments);
|
||||
}
|
||||
}
|
||||
|
||||
this.on(type, g);
|
||||
};
|
||||
|
||||
EventEmitter.prototype.emit = function() {
|
||||
var type = arguments[0];
|
||||
var listeners = this._listeners[type];
|
||||
if (!listeners) {
|
||||
return;
|
||||
}
|
||||
// equivalent of Array.prototype.slice.call(arguments, 1);
|
||||
var l = arguments.length;
|
||||
var args = new Array(l - 1);
|
||||
for (var ai = 1; ai < l; ai++) {
|
||||
args[ai - 1] = arguments[ai];
|
||||
}
|
||||
for (var i = 0; i < listeners.length; i++) {
|
||||
listeners[i].apply(this, args);
|
||||
}
|
||||
};
|
||||
|
||||
EventEmitter.prototype.on = EventEmitter.prototype.addListener = EventTarget.prototype.addEventListener;
|
||||
EventEmitter.prototype.removeListener = EventTarget.prototype.removeEventListener;
|
||||
|
||||
module.exports.EventEmitter = EventEmitter;
|
||||
Reference in New Issue
Block a user