From 5d63ae5a050b15deee0e9b72d02e91cf031097ae Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Sat, 25 Oct 2025 19:16:39 -0400 Subject: [PATCH] WIP --- .../svelte/src/internal/client/reactivity/async.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/svelte/src/internal/client/reactivity/async.js b/packages/svelte/src/internal/client/reactivity/async.js index c23ad9fe6f..27828f401c 100644 --- a/packages/svelte/src/internal/client/reactivity/async.js +++ b/packages/svelte/src/internal/client/reactivity/async.js @@ -283,9 +283,6 @@ export async function async_body(anchor, fn) { export function run(thunks) { const restore = capture(); - // let promise = Promise.resolve(); - let promise = new Promise((f) => Batch.enqueue(() => f(undefined))); - var boundary = get_boundary(); var batch = /** @type {Batch} */ (current_batch); var blocking = !boundary.is_pending(); @@ -295,7 +292,10 @@ export function run(thunks) { let was_hydrating = hydrating; - const promises = thunks.map((fn) => { + var promise = Promise.resolve(thunks[0]()); + var promises = [promise]; + + for (const fn of thunks.slice(1)) { promise = promise .then(() => { // TODO abort if component was destroyed? @@ -320,8 +320,8 @@ export function run(thunks) { } }); - return promise; - }); + promises.push(promise); + } promise.then(() => { boundary.update_pending_count(-1);