ak-eventemitter
API
EventEmitter(options)
Constructor.
options
Object
'delimiter': '.' // used to delimite name spaces
on(ns, callback[, context, once])
Adds an event listener.
ns
String
Target namespace, wildcard is *
, e.g chat.*
callback
Function
function (ns, arg1, arg2, ...) {}
see emit()
.
context
Object [optional]
Context used when calling callback.
once
Boolean
[optional]
Privately used by once()
once(ns, callback, context)
Same as on()
, triggered only once (removed after first emit()
).
off([ns, callback, context])
Removes an event listener.
ns
String [optional]
Target namespace, wildcard is *
, e.g chat.*
callback
Function [optional]
function (ns, arg1, arg2, ...) {}
see emit()
.
context
Object [optional]
Context used when calling callback.
- If no
ns
provided, removes all listeners; - if no
callback
provided, removes all listeners for givenns
; - if no
context
provided, remove a listener for givenns
andcallback
; - if
context
provided, removes a listener for givenns
,callback
andcontext
.
emit(ns, ...)
Emits an event.
ns
String [optional]
Target namespace.
...
Mixed [optional]
Any argument given after ns
will be passed to listener's callback. See examples.
Inheritance
See this CoderWall tip.
Examples
Example 1: simple event
var ee = ; ee; ee; // -> 'someevent', 123, 'abc'
Example 2: wildcard event
var ee = ; ee; ee; // -> 'room.user.enter', 'john'ee; // -> 'room.user.leave', 'john'ee; // -> 'room.topic.update', 'JavaScript is awesome!'
Example 3: on, once, off
var ee = ; ee; ee; ee; // -> 'room.user.enter', 'john'// -> 'Hello john! You're the first in!' ee; ee; // Nothing is logged (because we offed 'room.*')
Example 4: context
var ee = ;var counter = 'enter': 0 'leave': 0; ee; ee; ee;ee;ee;ee; console; // -> {'enter': 3, 'leave': 1}