JavaScript events for custom objects
npm install gr-event-dispatcherJavaScript events for custom objects




``bash`
$ npm install gr-event-dispatcher
* eventDispatcher
* ~addEventListener(type, listener) ⇒ Object
* ~hasEventListener(type, listener) ⇒ Boolean
* ~removeEventListener(type, listener) ⇒ Object
* ~dispatchEvent(event) ⇒ Object
* ~apply(object) ⇒ Object
on the event target it's called on.Kind: inner method of eventDispatcher
Returns: Object - The
eventDispatcher object.
Throws:- TypeError If the object that
eventDispatcher is applied to is not extensible.
| Param | Type | Description |
| --- | --- | --- |
| type | String | A string representing the event type to listen for. |
| listener | function | A function to be executed when an event of the specified
type occurs. |$3
Checks if the target object has a listener registered on for specific event type.Kind: inner method of eventDispatcher
Returns: Boolean - True if target object has
listener registered for specific event type; otherwise false. | Param | Type | Description |
| --- | --- | --- |
| type | String | A string representing the event type. |
| listener | function | The event listener to check if registered for the specified event
type. |$3
Removes the previously registered event listener from the event target.Kind: inner method of eventDispatcher
Returns: Object - The
eventDispatcher object. | Param | Type | Description |
| --- | --- | --- |
| type | String | A string representing the event type to remove. |
| listener | function | The event listener function to remove from the event target. |
$3
Dispatches an event at the specified event target.Kind: inner method of eventDispatcher
Returns: Object - The
eventDispatcher object. | Param | Type | Description |
| --- | --- | --- |
| event | Object | The event object to be dispatched. |
$3
Applies the eventDispatcher prototype methods to the event target.Kind: inner method of eventDispatcher
Returns: Object - The
eventDispatcher object.
Throws:- TypeError If the object that
eventDispatcher is applied to is not extensible.
| Param | Type | Description |
| --- | --- | --- |
| object | Object | The event target object. |
Example
`js
var car = {
start: function (afterStartCallback) {
// Dispatch start event.
this.dispatchEvent({type: 'start', message: 'Start engines'});
afterStartCallback && afterStartCallback(this);
},
stop: function () {
// Dispatch stop event.
this.dispatchEvent({type: 'stop', message: 'Stop engines'});
}
};function startEngines(event) {
console.log(event.message);
}
function stopEngines(event) {
console.log(event.message);
}
// Apply
eventDispatcher methods to the prototype of the event target.
eventDispatcher.apply(Object.getPrototypeOf(car));// Register event listeners to event target.
car
.addEventListener('start', startEngines)
.addEventListener('afterStart', startEngines)
.addEventListener('stop', stopEngines);
//
start event fires first, then afterStart and finally
// after two seconds stop events fires.car.start(function (self) {
// Dispatch
afterStart event.
self.dispatchEvent({type: 'afterStart', message: 'Car has started'});
});console.log(car.hasEventListener('start', startEngines)); // -> true
console.log(car.hasEventListener('afterStart', startEngines)); // -> true
console.log(car.hasEventListener('stop', startEngines)); // -> false
console.log(car.hasEventListener('stop', stopEngines)); // -> true
setTimeout(function () {
car.stop();
// Remove all event listeners from event target.
car
.removeEventListener('start', startEngines)
.removeEventListener('afterStart', startEngines)
.removeEventListener('stop', stopEngines);
}, 2000);
``