Skip to content

Commit f30cf15

Browse files
Handle aborted demo loaders with AbortError
1 parent 2ad4f99 commit f30cf15

1 file changed

Lines changed: 11 additions & 2 deletions

File tree

examples/demo/src/server-functions.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,16 @@ function formatPreparedAt() {
2727
return timeFormatter.format(new Date());
2828
}
2929

30+
function getAbortReason(signal: AbortSignal) {
31+
return (
32+
signal.reason ?? new DOMException("The operation was aborted.", "AbortError")
33+
);
34+
}
35+
3036
function waitForDemoDelay(delayMs: number, signal?: AbortSignal) {
3137
return new Promise<void>((resolve, reject) => {
3238
if (signal?.aborted) {
33-
reject(signal.reason);
39+
reject(getAbortReason(signal));
3440
return;
3541
}
3642

@@ -42,7 +48,10 @@ function waitForDemoDelay(delayMs: number, signal?: AbortSignal) {
4248
const handleAbort = () => {
4349
globalThis.clearTimeout(timeoutId);
4450
signal?.removeEventListener("abort", handleAbort);
45-
reject(signal?.reason);
51+
52+
if (signal) {
53+
reject(getAbortReason(signal));
54+
}
4655
};
4756

4857
signal?.addEventListener("abort", handleAbort, { once: true });

0 commit comments

Comments
 (0)