-
Notifications
You must be signed in to change notification settings - Fork 405
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(store): avoid delayed updates from state stream #1981
Conversation
BundleMonFiles updated (1)
Unchanged files (2)
Total files change +1.92KB +1.88% Groups updated (3)
Final result: ❌ View report in BundleMon website ➡️ |
BundleMon (Integration Projects)Files updated (3)
Total files change -791B -0.38% Final result: ✅ View report in BundleMon website ➡️ |
BundleMon (NGXS Plugins)Unchanged files (14)
No change in files bundle size Unchanged groups (3)
Final result: ✅ View report in BundleMon website ➡️ |
Code Climate has analyzed commit 31213db and detected 2 issues on this pull request. Here's the issue category breakdown:
The test coverage on the diff in this pull request is 100.0% (50% is the threshold). This pull request will bring the total coverage in the repository to 97.0% (0.0% change). View more on Code Climate. |
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [@ngxs/form-plugin](https://github.com/ngxs/store) | dependencies | minor | [`3.7.6` -> `3.8.0`](https://renovatebot.com/diffs/npm/@ngxs%2fform-plugin/3.7.6/3.8.0) | | [@ngxs/storage-plugin](https://github.com/ngxs/store) | dependencies | minor | [`3.7.6` -> `3.8.0`](https://renovatebot.com/diffs/npm/@ngxs%2fstorage-plugin/3.7.6/3.8.0) | | [@ngxs/store](https://github.com/ngxs/store) | dependencies | minor | [`3.7.6` -> `3.8.0`](https://renovatebot.com/diffs/npm/@ngxs%2fstore/3.7.6/3.8.0) | --- ### Release Notes <details> <summary>ngxs/store</summary> ### [`v3.8.0`](https://github.com/ngxs/store/blob/HEAD/CHANGELOG.md#​380-2023-03-29) [Compare Source](ngxs/store@v3.7.6...v3.8.0) - Feature: Build packages in Ivy format [#​1945](ngxs/store#1945) - Feature: Add advanced selector utilities [#​1824](ngxs/store#1824) - Feature: Expose `ActionContext` and `ActionStatus` [#​1766](ngxs/store#1766) - Feature: `ofAction*` methods should have strong types [#​1808](ngxs/store#1808) - Feature: Improve contextual type inference for state operators [#​1806](ngxs/store#1806) [#​1947](ngxs/store#1947) - Feature: Enable warning on unhandled actions [#​1870](ngxs/store#1870) [#​1951](ngxs/store#1951) - Feature: Router Plugin - Provide more actions and navigation timing option [#​1932](ngxs/store#1932) - Feature: Storage Plugin - Allow providing namespace for keys [#​1841](ngxs/store#1841) - Feature: Storage Plugin - Enable providing storage engine individually [#​1935](ngxs/store#1935) - Feature: Devtools Plugin - Add new options to the `NgxsDevtoolsOptions` interface [#​1879](ngxs/store#1879) - Feature: Devtools Plugin - Add trace options to `NgxsDevtoolsOptions` [#​1968](ngxs/store#1968) - Feature: Form Plugin - Allow `ngxsFormDebounce` to be string [#​1972](ngxs/store#1972) - Performance: Tree-shake patch errors [#​1955](ngxs/store#1955) - Fix: Get descriptor explicitly when it's considered as a class property [#​1961](ngxs/store#1961) - Fix: Avoid delayed updates from state stream [#​1981](ngxs/store#1981) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4yNC41IiwidXBkYXRlZEluVmVyIjoiMzUuMjQuNSJ9--> Co-authored-by: cabr2-bot <cabr2.help@gmail.com> Reviewed-on: https://codeberg.org/Calciumdibromid/CaBr2/pulls/1837 Reviewed-by: Epsilon_02 <epsilon_02@noreply.codeberg.org> Co-authored-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org> Co-committed-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org>
PR Checklist
Please check if your PR fulfills the following requirements:
PR Type
What kind of change does this PR introduce?
What is the current behavior?
Currently, if an action is dispatched and, in the subscription to the observable returned by the
dispatch
call, we use aselectOnce
then the value emitted is the value from the state before the action was dispatched.Issue Number: #1976
What is the new behavior?
The
queueScheduler
from rxjs does not honor the "synchronous" operation stated in the docs, so this has been removed from the stream constructed for selectors, and the state stream now uses theOrderedBehaviorSubject
as its base. This is similar to the way that the Actions stream uses theOrderedSubject
as its base in order to avoid similar timing issues with its stream.Does this PR introduce a breaking change?
Other information