Every fundamental ActiveJS construct has a number of built-in Observable events. You can listen to these events by subscribing to the events$ Observable, a property of every fundamental construct.

Units, Systems, Action, and Cluster have a common EventReplay event, it is triggered on a successful manual replay when you call the replay() method.

Units have many Units specific events that let you tap into all the action that's happening on a Unit. Every Unit has some common events like EventUnitDispatch, EventUnitDispatchFail andEventUnitFreeze etc.

ListUnit and DictUnit have even more events specific to them, like EventDictUnitSet, EventListUnitPush or EventListUnitPop etc.

See API reference for more details.

Listening to events

const theAction = new Action(); // can also be a Unit, System or Cluster$.subscribe(event => {
// Action, AsyncSystem and Cluster only have one event
// so filtering is optional
if(event instanceof EventReplay) {
console.log('hey, you got replayed');
// dispatch a value
theAction.dispatch('order order');
// this won't trigger any event, only Units emit an event on dispatch
// replay the value
theAction.replay(); // it'll trigger the EventReplay event