Skip to content

Commit c4ff0db

Browse files
fix: resolve promises before setting them to undefined (#4434)
1 parent 61a63fe commit c4ff0db

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

e2e/solid-router/basic-file-based/tests/redirect.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ test.describe('redirects', () => {
126126
})
127127
})
128128

129-
test.skip('regression test for #3097', async ({ page }) => {
129+
test('regression test for #3097', async ({ page }) => {
130130
await page.goto(`/redirect/preload/first`)
131131
const link = page.getByTestId(`link`)
132132
await link.focus()

packages/router-core/src/router.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2055,6 +2055,9 @@ export class RouterCore<
20552055
}
20562056
}
20572057

2058+
match.beforeLoadPromise?.resolve()
2059+
match.loaderPromise?.resolve()
2060+
20582061
updateMatch(match.id, (prev) => ({
20592062
...prev,
20602063
status: isRedirect(err)
@@ -2072,8 +2075,6 @@ export class RouterCore<
20722075
;(err as any).routeId = match.routeId
20732076
}
20742077

2075-
match.beforeLoadPromise?.resolve()
2076-
match.loaderPromise?.resolve()
20772078
match.loadPromise?.resolve()
20782079

20792080
if (isRedirect(err)) {
@@ -2180,6 +2181,9 @@ export class RouterCore<
21802181
}, pendingMs)
21812182
}
21822183

2184+
console.log(`Match ${matchId} is already loading`, {
2185+
match: this.getMatch(matchId),
2186+
})
21832187
// Wait for the beforeLoad to resolve before we continue
21842188
await existingMatch.beforeLoadPromise
21852189
executeBeforeLoad = this.getMatch(matchId)!.status === 'error'

0 commit comments

Comments
 (0)