Rx Event Manager
motivation
To allow inter-modules communication in Rx way. Also, it memorize Rx.Disposable
instances where we can simply call dispose
without explicitly stored returned subscription.
API
observe
return a Rx.Observable
instance with given event
name
observe given event
EventManager ; EventManager
on
a shorthand of combination of observe
and subscribe
which returns an instance of Rx.Observer
listen to given event
EventManager; EventManager;
fire
dispatch event with given event
and data
// fire 'hello' event which which has data { answer: 42 }EventManager; // fire 'answer' event which has data `42`EventManager;
once
listen to given event
only once.
EventManager; EventManager;> hello> complete EventManager// nothing happened
latest
emit sequence immediately with most recent value
if given event
got fired before.
EventManager; EventManager; > callback 42 EventManager ; > observable 42 EventManager;> callback world> observable world
change
emit sequences only if data changed
EventManager ; EventManager;> 1 EventManager;// nothing happened EventManager;> 2
{ return xvalue === yvalue;} EventManager ; EventManager; EventManager;> observable 1> callback 1 EventManager;// nothing happened EventManager;> observable 2> callback 2
dispose
dispose and remove given event
// get disposable instance from `on` method EventManager; EventManager;> hello EventManager; EventManager// nothing happened
// get disposable instance from `once` method EventManager; EventManager; EventManager// nothing happened
// get disposable instance from `observe` method EventManager; EventManager> world EventManager; EventManager// nothing happened
// via `observe` method which has extra operators EventManager ; EventManager//nothing happened EventManager> world EventManager; EventManager// nothing happened
disposeAll
dispose and remove all event subscriptions
EventManager; EventManager;> hello EventManager; EventManager// nothing happened