1.0.1 • Published 10 years ago
event-controller v1.0.1
SYNOPSIS
Simple JavaScript event controller implementation. Similar to Node.js EventEmitter
, but manages a single event type.
- Useful for building interfaces that favor composition over inheritance. Event controllers could be assigned to instance properties instead of using inherited
EventEmitter
. - Manages a single event, avoids extra event type lookup. Can't dispatch arbitrary events, each event type needs its own controller.
- Doesn't rely on strings to identify event types.
- Might be faster (see benchmark below).
USAGE
var EventController = require('event-controller');
var event1 = new EventController();
// Add listener
event1.add(function (value) {
// handle event
});
// Dispatch
event1.dispatch('hello');
Interface example:
function MyObject() {
this.onError = new EventController();
this.onReceive = new EventController();
}
var obj = new MyObject();
// Add error handler
obj.onError.add(function() {});
// Dispatch error
obj.onError.dispatch(new Error());
##API
###.add(fn)
Add new event listener.
###.remove(fn)
Remove event listener.
###.dispatch(args...) .raise(args...)
Dispatch new event.
##BENCHMARK
Random benchmark results for 1 event type and 2 listeners .
EventEmitter x 1,269,447 ops/sec ±3.63% (85 runs sampled)
EventController x 3,427,809 ops/sec ±2.19% (88 runs sampled)
Fastest is EventController
##LICENSE
Apache License, Version 2.0