I know using Reflux.__keep.createdActions
I get a list of all actions created. Is there a way to know the name of these actions?
Is there a way to define a preEmit
hook for all actions?
Important Note: Reflux.__keep
was actually originally created to support another feature that never materialized. However it was also creating memory leaks in some programs. Therefore it was recently made to NOT store anything by default. To make it store anything you have to use Reflux.__keep.useKeep()
in latest versions of reflux
and reflux-core
. Reflux.__keep
is not a documented part of the API, and as such changes to it do not necessarily follow semantic versioning. From v5.0.2 of Reflux onward the useKeep()
is needed for Reflux.__keep
to store anything.
On to the question though:
1) In Reflux.__keep
there is a createdActions
property, which is an Array holding all created actions so far (if you did the useKeep()
thing, of course). Every action should have on it an actionName
property telling you that action's name which you supplied when you created it:
Reflux.__keep.useKeep()
Reflux.createActions(['firstAction', 'secondAction']);
console.log(Reflux.__keep.createdActions[0].actionName) // <-- firstAction
console.log(Reflux.__keep.createdActions[1].actionName) // <-- secondAction
2) preEmit
hooks can be assigned to actions after-the-fact, so assigning them to actions within Reflux.__keep.createdActions
would be a simple matter of a loop:
Reflux.__keep.useKeep()
var Actions = Reflux.createActions(['firstAction', 'secondAction']);
var total = Reflux.__keep.createdActions.length;
for (var i=0; i<total; i++) {
Reflux.__keep.createdActions[i].preEmit = function(arg) { console.log(arg); };
}
Actions.firstAction('Hello'); // <- preEmit outputs "Hello"
Actions.secondAction('World!'); // <- preEmit outputs "World!"