[BUGFIX beta] Avoid run.next in app.visit
resolve handler.
#14591
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 prior comment has been pointed to by a few different people in the FastBoot team meetings so I decided to dig into exactly what the TODO was talking about. Specifically, why do we need a
run.next
before resolving the visit promise?The answer is basically that the
router.handleURL
transition promise being resolved does not actually guarantee that rendering is completed. Since the renderer schedules the actual revalidation and rendering into therender
queue, we must wait for that to complete before resolving the promise.This commit explains that in the inline comments, and changes the implementation to use
run.schedule('afterRender', ....)
instead ofrun.next
(since resolving "after rendering is complete" is what we actually care about).