diff --git a/packages/svelte/src/internal/client/reactivity/async.js b/packages/svelte/src/internal/client/reactivity/async.js index edd2b37371..093d45ec0a 100644 --- a/packages/svelte/src/internal/client/reactivity/async.js +++ b/packages/svelte/src/internal/client/reactivity/async.js @@ -76,14 +76,17 @@ export function flatten(blockers, sync, async, fn) { // Full path: has async expressions function run() { - restore(); Promise.all(async.map((expression) => async_derived(expression))) .then((result) => finish([...sync.map(d), ...result])) .catch((error) => invoke_error_boundary(error, parent)); } if (blocker_promise) { - blocker_promise.then(run); + blocker_promise.then(() => { + restore(); + run(); + unset_context(); + }); } else { run(); }