Fix ObservableQuery result dirty check with last.reportedResult #9844
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.
When
notifyOnNetworkStatusChange
is enabled some watchQueries get stuck inloading: true, partial: true
after callingreobserve
/setVariables
even if the underlying network request has already returned a successful result.In particular, this bug happens when a reobserved query returns the same data with the new variables as before, or when the query is simply refreshed.
In this PR I create the variable
last.reportedResult
to keep track of last reported result, which may be different thanlast.result
. It avoids leaving queries stuck inloading=true
forever.Related to #9367
Checklist: