Defined in: throttler.ts:126
A class that creates a throttled function.
Throttling ensures a function is called at most once within a specified time window. Unlike debouncing which waits for a pause in calls, throttling guarantees consistent execution timing regardless of call frequency.
Supports both leading and trailing edge execution:
For collapsing rapid-fire events where you only care about the last call, consider using Debouncer.
State Management:
const throttler = new Throttler(
(id: string) => api.getData(id),
{ wait: 1000 } // Execute at most once per second
);
// First call executes immediately
throttler.maybeExecute('123');
// Subsequent calls within 1000ms are throttled
throttler.maybeExecute('123'); // Throttled
const throttler = new Throttler(
(id: string) => api.getData(id),
{ wait: 1000 } // Execute at most once per second
);
// First call executes immediately
throttler.maybeExecute('123');
// Subsequent calls within 1000ms are throttled
throttler.maybeExecute('123'); // Throttled
• TFn extends AnyFunction
new Throttler<TFn>(fn, initialOptions): Throttler<TFn>
new Throttler<TFn>(fn, initialOptions): Throttler<TFn>
Defined in: throttler.ts:133
TFn
ThrottlerOptions<TFn>
Throttler<TFn>
options: ThrottlerOptions<TFn>;
options: ThrottlerOptions<TFn>;
Defined in: throttler.ts:130
readonly store: Store<Readonly<ThrottlerState<TFn>>>;
readonly store: Store<Readonly<ThrottlerState<TFn>>>;
Defined in: throttler.ts:127
cancel(): void
cancel(): void
Defined in: throttler.ts:276
Cancels any pending trailing execution and clears internal state.
If a trailing execution is scheduled (due to throttling with trailing=true), this will prevent that execution from occurring. The internal timeout and stored arguments will be cleared.
Has no effect if there is no pending execution.
void
flush(): void
flush(): void
Defined in: throttler.ts:254
Processes the current pending execution immediately
void
maybeExecute(...args): void
maybeExecute(...args): void
Defined in: throttler.ts:204
Attempts to execute the throttled function. The execution behavior depends on the throttler options:
If enough time has passed since the last execution (>= wait period):
If within the wait period:
...Parameters<TFn>
void
const throttled = new Throttler(fn, { wait: 1000 });
// First call executes immediately
throttled.maybeExecute('a', 'b');
// Call during wait period - gets throttled
throttled.maybeExecute('c', 'd');
const throttled = new Throttler(fn, { wait: 1000 });
// First call executes immediately
throttled.maybeExecute('a', 'b');
// Call during wait period - gets throttled
throttled.maybeExecute('c', 'd');
reset(): void
reset(): void
Defined in: throttler.ts:287
Resets the throttler state to its default values
void
setOptions(newOptions): void
setOptions(newOptions): void
Defined in: throttler.ts:147
Updates the throttler options
Partial<ThrottlerOptions<TFn>>
void
Your weekly dose of JavaScript news. Delivered every Monday to over 100,000 devs, for free.