nuclear-js
nuclear-js copied to clipboard
When using batch, do not receive error when calling dispatch inside of dispatch
The following code will not throw an error in console:
in my componentDidMount():
Reactor.batch(() => {
Reactor.dispatch('DISPATCH1');
})
in my store:
initialize() {
this.on('DISPATCH1', (state) => {
Reactor.dispatch('DISPATCH2');
return state;
});
this.on('DISPATCH2', (state) => { return state.set('blah', foo);} );
}
This will execute DISPATCH2 inside of DISPATCH1, but will result in the changes made by DISPATCH2 being thrown away (instead of receiving an error message).
If I remove the batch, then I receive the following error message:
nuclear.js:5647Uncaught Error: Dispatch may not be called while a dispatch is in progress
It is showing that error because you are dispatching DISPATCH2 from within the handler of DISPATCH1. That yielded the error. Try moving that logic to an action.
I realize there's a problem with my code. However, the issue I raised is that you don't get any sort of error from nuclear if you do this inside of a batch.