From 0f6001d15238d997ce5f73dabf4fae31eab503d1 Mon Sep 17 00:00:00 2001 From: Elliott Johnson Date: Tue, 4 Nov 2025 11:23:37 -0700 Subject: [PATCH] misc --- .../internal/client/reactivity/resource.js | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/packages/svelte/src/internal/client/reactivity/resource.js b/packages/svelte/src/internal/client/reactivity/resource.js index c0267cb1e4..8aad0b23d8 100644 --- a/packages/svelte/src/internal/client/reactivity/resource.js +++ b/packages/svelte/src/internal/client/reactivity/resource.js @@ -53,14 +53,19 @@ class Resource { const p = get(this.#promise); return async (resolve, reject) => { - try { - await p; - await tick(); + const result = /** @type {Promise>} */ ( + (async () => { + await p; + await tick(); + return get(this.#current); + })() + ); - resolve?.(/** @type {Awaited} */ (get(this.#current))); - } catch (error) { - reject?.(error); + if (resolve || reject) { + return result.then(resolve, reject); } + + return result; }; }); @@ -127,10 +132,7 @@ class Resource { get finally() { get(this.#then); return (/** @type {any} */ fn) => { - return get(this.#then)( - () => fn(), - () => fn() - ); + return get(this.#then)().finally(fn); }; }