Return Promise<void>
from Turbo.visit
#650
Merged
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 consumer applications navigate through the
Turbo.visit
, return aPromise<void>
that will resolve when the visit is complete.If a visit fails or is cancelled, the
Promise
will be rejected.To achieve this behavior, extract the
ResolvingFunctions<T>
typefrom the
Renderer
class into the sharedsrc/core/types.ts
module.Following the pattern established by
Renderer
instances, add apromise: Promise
property to theVisit
class, and use thatPromise
to assign a
resolvingFunctions: ResolvingFunctions<void>
property tomake the underlying
resolve()
andreject()
calls available to theVisit
.When a
Visit
completes successfully, callthis.resolvingFunctions.resolve()
. When it fails or is canceled fromthe outside, call
this.resolvingFunctions.reject()
.