withObservable
Small and simple observable pattern.
- enforces event-name registration on init
- observable pattern is used to clearly distinct from EventEmitter and sometimes ambigious on-methods
- lightweight solution
Installation
npm install with-observable --save
Usage
// mixin the observable behaviour:// myobject.observers;// myobject.addObserver;// myobject.addObserverOnce;// myobject.removeObserver;// myobject.notify;myObject = withObservable; // register to an eventmyObject; // register to an event oncemyObject; // prioritize an event listener (gets executed first)myObject; // stop observing given callbackmyObject; // register event (should be used within myobject)myObject; // contains callbacks by eventsmyObjectobservers // remove observablewithObservabledispose;
Recommendations
Within a Constructor use the mixin as follows
AClass.UPDATE_EVENT = "update";
AClass.END_EVENT = "end";
function AClass() {
withObservable.call(this, [AClass.UPDATE_EVENT, AClass.END_EVENT]);
}
This ensures that
- The event names are accessible from outside
- refactoring of eventnames is simple
- better overview of actual events
- calling withObservable in constructor prevents conflicts