fix(Resolve): prevent RXWAIT from waiting for the observable to complete #2905
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 RXWAIT resolve policy is supposed to wait for the resolved observable to begin emitting values, and then provide the observable. It accomplishes this by first
cache()
ing the observable and then waiting on the result oftoPromise
. However, RxJStoPromise
only resolves the promise when the stream completes, not when the first value is emitted as desired. Addingtake(1)
beforetoPromise
will cause the stream to complete after 1 value is emitted, at what point the original stream can be returned.Also, the
cache()
without a buffer size will cause all old results to be replayed to new subscribers. Setting a buffer size of 1 will cause only the most recent emitted value to be replayed.