Add support for complex sagas asynchronously initializing the store state at server-side #438
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The current usage example does not correctly handle some cases of sagas initializing the store. If saga
A
is waiting for the result of an asynchronous operation done by sagaB
, with the result dispatched as a redux action, sagaA
would never receive the result-carrying action because theEND
action is dispatched too soon in such a case. (This pattern enables multiple sagas to receive the result ofA
while having to executeA
only once).This PR handles such use cases by introducing a saga monitor that observes saga activity and reports once every saga has either terminated or is waiting for a redux action (this is an assumption that the saga at hand awaits a user action that would dispatch the expected action, and can be terminated using the
END
action).