Support for explicit resource management "using statements" on RTK Query subscriptions #3708
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.
Issue: #3707
This PR proposes the addition of a
[Symbol.dispose]: () => void
to be added to the object returned fromdispatch(endpoint.initiate())
to enable explicit resource management with using statements.I've put effort into ensuring that none of the exported types reference
Symbol.dispose
when it's not available so consumers with older versions of Typescript won't have any type errors.There are some explicit any casts within
disposableIfAvailable.ts
that allows this change to be compiled without needing to update the whole library to use Typescritp 5.2+ We're currently on 4.2.4. These any types are only internal to the module.Testing
I've manually tested this change using the example code snippet in #3707