From 27c85466d0eebb1c33f92b0ffd1793a17804f9f8 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 2 Jul 2024 23:17:11 -0400 Subject: [PATCH] feat: skip pending block for already-resolved promises --- .changeset/chatty-ghosts-unite.md | 5 +++++ packages/svelte/src/internal/client/dom/blocks/await.js | 3 +-- 2 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 .changeset/chatty-ghosts-unite.md diff --git a/.changeset/chatty-ghosts-unite.md b/.changeset/chatty-ghosts-unite.md new file mode 100644 index 0000000000..076616d2da --- /dev/null +++ b/.changeset/chatty-ghosts-unite.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +feat: skip pending block for already-resolved promises diff --git a/packages/svelte/src/internal/client/dom/blocks/await.js b/packages/svelte/src/internal/client/dom/blocks/await.js index 4c57f9b564..a314fa085f 100644 --- a/packages/svelte/src/internal/client/dom/blocks/await.js +++ b/packages/svelte/src/internal/client/dom/blocks/await.js @@ -10,7 +10,6 @@ import { } from '../../runtime.js'; import { block, branch, pause_effect, resume_effect } from '../../reactivity/effects.js'; import { DEV } from 'esm-env'; -import { queue_micro_task } from '../task.js'; import { hydrating } from '../hydration.js'; import { mutable_source, set, source } from '../../reactivity/sources.js'; @@ -133,7 +132,7 @@ export function await_block(anchor, get_input, pending_fn, then_fn, catch_fn) { } else { // Wait a microtask before checking if we should show the pending state as // the promise might have resolved by the next microtask. - queue_micro_task(() => { + Promise.resolve().then(() => { if (!resolved) update(PENDING, true); }); }