fix(signals): run onDestroy
outside of injection context
#4200
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.
PR Checklist
Please check if your PR fulfills the following requirements:
PR Type
The Signal Store saves the injection context upon instantiation and re-uses it in the
onDestroy
hook.If the Store is provided in root, any test with an
onDestroy
hook fails with the error message: NG0205: Injector has already been destroyed.This PR runs
onDestroy
outside of the injection context.Since this will break any code which depends on the injection context in
onDestroy
, there will be follow-up (breaking change) feature which will provide the injection context before the hook is executed.Discussed in: #4196
What is the current behavior?
Any test with a store
providedIn: root
fails.Closes #
What is the new behavior?
onDestroy
runs outside of the injection context.Does this PR introduce a breaking change?
There will be a feature PR which re-enables the injection context, but in a different way.
Other information