Publish and subscribe to events across modules.
npm install @degjs/event-aggregatorEventAggregator is a module that acts as a single source of events for objects that wish to publish and/or subscribe to events. This module was heavily inspired by Eric Elliot and his excellent book Programming JavaScript Applications. Go read it.
$ npm install @degjs/event-aggregator
`
Usage
EventAggregator is a singleton, so it does not need to be instantiated.
`js
import eventAggregator from "@degjs/event-aggregator";function onSomeEvent(e) {
console.log(e);
}
/ Subscribe to 'someEvent' event /
eventAggregator.subscribe('someEvent', onSomeEvent);
/ Unsubscribe from 'someEvent' event /
eventAggregator.unsubscribe('someEvent', onSomeEvent);
/ Publish 'yetAnotherEvent' event /
eventAggregator.publish({
/ type property is required /
type: 'yetAnotherEvent',
data: {...}
});
`Methods
$3
Subscribe to an event.
#### eventType
Type: String
The name of the event to subscribe to.#### listener
Type:
Function
The listener function that will be called when the event is fired.$3
Unsubscribe from an event.
#### eventType
Type: String
The name of the event to unsubscribe from.#### listener
Type:
Function
The listener function that was subscribed to the event.$3
Publish an event.
#### evt
Type: Object or String
The event to publish. If the parameter is a String, it should be the name of the event. If the parameter is an Object, it must have a type` property with a value that is the name of the event. Any other properties on the object will be passed along to all subscribers of the event. Breakpoints depends on the following browser APIs:
+ Array.indexOf
+ Array.forEach
+ Array.isArray
To support legacy browsers, you'll need to include polyfills for the above APIs.