UNPKG

sg-event-emitter

Version:
39 lines (29 loc) 1.49 kB
# Event Emitter Very simple class allowing for dispatch custom events in DOM-like style. It's tested in production apps on both browser and node. ## Usage All available methods are: - `addEventListener(name: string, listener: ()=>void)` - adds a new listener to given event - `removeEventListener(name: string, listener: ()=>void)` - removes registered listener for given event. You have to pass exactly the same function as passed previously to `addEventListener`. - `dispatchEvent(name: string)` - dispatches given event - `settle(host: any)` - links `addEventListener` and `removeEventListener` from EventEmitter instance to given host object. This allows you to create really encapsulated EventEmitter instance and expose only these two public methods. ```js var EventEmitter = require('sg-event-emitter').EventEmitter; //or import {EventEmitter} from 'sg-event-emitter'; class Foo { constructor () { this._eventEmitter = new EventEmitter(); this._eventEmitter.settle(this); //from now this object has //`addEventListener` and `removeEventListener` methods } makeSomeAction () { this._eventEmitter.dispatchEvent('myEvent'); } } var foo = new Foo(); var listener = _ => console.log('dispatched'); foo.addEventListener('myEvent', listener); foo.makeSomeAction(); //logs 'dispatched' foo.removeEventListener('myEvent', listener); foo.makeSomeAction(); //doesn't log anything ```