Constructor.
optionsObject
{
'delimiter': '.' // used to delimite name spaces
}Adds an event listener.
nsString
Target namespace, wildcard is *, e.g chat.*
callbackFunction
function (ns, arg1, arg2, ...) {} see emit().
contextObject [optional]
Context used when calling callback.
onceBoolean[optional]
Privately used by once()
Same as on(), triggered only once (removed after first emit()).
Removes an event listener.
nsString [optional]
Target namespace, wildcard is *, e.g chat.*
callbackFunction [optional]
function (ns, arg1, arg2, ...) {} see emit().
contextObject [optional]
Context used when calling callback.
- If no
nsprovided, removes all listeners; - if no
callbackprovided, removes all listeners for givenns; - if no
contextprovided, remove a listener for givennsandcallback; - if
contextprovided, removes a listener for givenns,callbackandcontext.
Emits an event.
nsString [optional]
Target namespace.
...Mixed [optional]
Any argument given after ns will be passed to listener's callback. See examples.
See this CoderWall tip.
var ee = new EventEmitter();
ee.on('someevent', function (ns, val1, val2) {
console.log(ns, val1, val2);
});
ee.emit('someevent', 123, 'abc'); // -> 'someevent', 123, 'abc'var ee = new EventEmitter();
ee.on('room.*', function (ns, data) {
console.log(ns, data);
});
ee.emit('room.user.enter', 'john'); // -> 'room.user.enter', 'john'
ee.emit('room.user.leave', 'john'); // -> 'room.user.leave', 'john'
ee.emit('room.topic.update', 'JavaScript is awesome!'); // -> 'room.topic.update', 'JavaScript is awesome!'var ee = new EventEmitter();
ee.on('room.*', function (ns, data) {
console.log(ns, data);
});
ee.once('room.user.enter', function (ns, user) {
console.log('Hello ' + user + '! You\'re the first in!');
});
ee.emit('room.user.enter', 'john');
// -> 'room.user.enter', 'john'
// -> 'Hello john! You're the first in!'
ee.off('room.*');
ee.emit('room.user.leave', 'john'); // Nothing is logged (because we offed 'room.*')var ee = new EventEmitter();
var counter = {
'enter': 0,
'leave': 0
};
ee.on('room.user.enter', function (ns) {
this.enter += 1;
}, counter);
ee.on('room.user.leave', function (ns) {
this.leave += 1;
}, counter);
ee.emit('room.user.enter', 'john');
ee.emit('room.user.leave', 'mary');
ee.emit('room.user.enter', 'george');
ee.emit('room.user.enter', 'paul');
console.log(counter); // -> {'enter': 3, 'leave': 1}