diff --git a/.changeset/thin-carpets-beam.md b/.changeset/thin-carpets-beam.md new file mode 100644 index 00000000..73e9c0ed --- /dev/null +++ b/.changeset/thin-carpets-beam.md @@ -0,0 +1,5 @@ +--- +"runed": patch +--- + +fix(useDebounce, useThrottle): resolve instead of reject on cancel diff --git a/packages/runed/src/lib/utilities/use-debounce/use-debounce.svelte.ts b/packages/runed/src/lib/utilities/use-debounce/use-debounce.svelte.ts index eaa7afed..70e73e15 100644 --- a/packages/runed/src/lib/utilities/use-debounce/use-debounce.svelte.ts +++ b/packages/runed/src/lib/utilities/use-debounce/use-debounce.svelte.ts @@ -57,6 +57,9 @@ export function useDebounce( resolve = res; reject = rej; }); + // Prevent unhandled rejection when cancel() is called + // without the caller attaching a .catch() handler + promise.catch(() => {}); context = { timeout: null, diff --git a/packages/runed/src/lib/utilities/use-throttle/use-throttle.svelte.ts b/packages/runed/src/lib/utilities/use-throttle/use-throttle.svelte.ts index b3e410ee..1a7c622f 100644 --- a/packages/runed/src/lib/utilities/use-throttle/use-throttle.svelte.ts +++ b/packages/runed/src/lib/utilities/use-throttle/use-throttle.svelte.ts @@ -37,6 +37,9 @@ export function useThrottle( resolve = res; reject = rej; }); + // Prevent unhandled rejection when cancel() is called + // without the caller attaching a .catch() handler + promise.catch(() => {}); } if (now < nextAllowedTime) {