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 } } }