From 627eb1e36d8b3dd92a6191985ade86148497c331 Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Thu, 12 Dec 2024 15:08:44 -0800 Subject: [PATCH] Fix throttle to use correct pending arguments --- packages/lib/package.json | 2 +- packages/lib/src/Tools.ts | 12 +++++------- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/packages/lib/package.json b/packages/lib/package.json index eb9c937..bf82fec 100644 --- a/packages/lib/package.json +++ b/packages/lib/package.json @@ -1,6 +1,6 @@ { "name": "@welshman/lib", - "version": "0.0.31", + "version": "0.0.32", "author": "hodlbod", "license": "MIT", "description": "A collection of utilities.", diff --git a/packages/lib/src/Tools.ts b/packages/lib/src/Tools.ts index 117daad..335c6cf 100644 --- a/packages/lib/src/Tools.ts +++ b/packages/lib/src/Tools.ts @@ -463,14 +463,13 @@ export const throttle = any>(ms: number, f: F) => return f } - let args: Parameters let paused = false - let trailing = false + let nextArgs: Maybe> const unpause = () => { - if (trailing) { - f(...args) - trailing = false + if (nextArgs) { + f(...nextArgs) + nextArgs = undefined } paused = false @@ -480,10 +479,9 @@ export const throttle = any>(ms: number, f: F) => if (!paused) { f(...thisArgs) paused = true - args = thisArgs setTimeout(unpause, ms) } else { - trailing = true + nextArgs = thisArgs } } }