Documentation
Framework
Version
Debouncer API Reference
Throttler API Reference
Rate Limiter API Reference
Queue API Reference
Batcher API Reference

AsyncRetryerOptions

Interface: AsyncRetryerOptions<TFn>

Defined in: async-retryer.ts:60

Type Parameters

TFn extends AnyAsyncFunction

Properties

backoff?

ts
optional backoff: "linear" | "exponential" | "fixed";
optional backoff: "linear" | "exponential" | "fixed";

Defined in: async-retryer.ts:68

The backoff strategy for retry delays:

  • 'exponential': Wait time doubles with each attempt (1s, 2s, 4s, ...)
  • 'linear': Wait time increases linearly (1s, 2s, 3s, ...)
  • 'fixed': Same wait time for all attempts

Default

ts
'exponential'
'exponential'

baseWait?

ts
optional baseWait: number | (retryer) => number;
optional baseWait: number | (retryer) => number;

Defined in: async-retryer.ts:73

Base wait time in milliseconds between retries, or a function that returns the wait time

Default

ts
1000
1000

enabled?

ts
optional enabled: boolean | (retryer) => boolean;
optional enabled: boolean | (retryer) => boolean;

Defined in: async-retryer.ts:78

Whether the retryer is enabled, or a function that determines if it's enabled

Default

ts
true
true

initialState?

ts
optional initialState: Partial<AsyncRetryerState<TFn>>;
optional initialState: Partial<AsyncRetryerState<TFn>>;

Defined in: async-retryer.ts:82

Initial state to merge with the default state


jitter?

ts
optional jitter: number;
optional jitter: number;

Defined in: async-retryer.ts:87

Jitter percentage to add to retry delays (0-1). Adds randomness to prevent thundering herd.

Default

ts
0
0

key?

ts
optional key: string;
optional key: string;

Defined in: async-retryer.ts:92

Optional key to identify this async retryer instance. If provided, the async retryer will be identified by this key in the devtools and PacerProvider if applicable.


maxAttempts?

ts
optional maxAttempts: number | (retryer) => number;
optional maxAttempts: number | (retryer) => number;

Defined in: async-retryer.ts:97

Maximum number of retry attempts, or a function that returns the max attempts

Default

ts
3
3

maxExecutionTime?

ts
optional maxExecutionTime: number;
optional maxExecutionTime: number;

Defined in: async-retryer.ts:102

Maximum execution time in milliseconds for a single function call before aborting

Default

ts
Infinity
Infinity

maxTotalExecutionTime?

ts
optional maxTotalExecutionTime: number;
optional maxTotalExecutionTime: number;

Defined in: async-retryer.ts:107

Maximum total execution time in milliseconds for the entire retry operation before aborting

Default

ts
Infinity
Infinity

onAbort()?

ts
optional onAbort: (reason, retryer) => void;
optional onAbort: (reason, retryer) => void;

Defined in: async-retryer.ts:111

Callback invoked when the execution is aborted (manually or due to timeouts)

Parameters

reason

"manual" | "execution-timeout" | "total-timeout" | "new-execution"

retryer

AsyncRetryer<TFn>

Returns

void


onError()?

ts
optional onError: (error, args, retryer) => void;
optional onError: (error, args, retryer) => void;

Defined in: async-retryer.ts:118

Callback invoked when any error occurs during execution (including retries)

Parameters

error

Error

args

Parameters<TFn>

retryer

AsyncRetryer<TFn>

Returns

void


onExecutionTimeout()?

ts
optional onExecutionTimeout: (retryer) => void;
optional onExecutionTimeout: (retryer) => void;

Defined in: async-retryer.ts:146

Callback invoked when a single execution attempt times out (maxExecutionTime exceeded)

Parameters

retryer

AsyncRetryer<TFn>

Returns

void


onLastError()?

ts
optional onLastError: (error, retryer) => void;
optional onLastError: (error, retryer) => void;

Defined in: async-retryer.ts:126

Callback invoked when the final error occurs after all retries are exhausted

Parameters

error

Error

retryer

AsyncRetryer<TFn>

Returns

void


onRetry()?

ts
optional onRetry: (attempt, error, retryer) => void;
optional onRetry: (attempt, error, retryer) => void;

Defined in: async-retryer.ts:130

Callback invoked before each retry attempt

Parameters

attempt

number

error

Error

retryer

AsyncRetryer<TFn>

Returns

void


onSettled()?

ts
optional onSettled: (args, retryer) => void;
optional onSettled: (args, retryer) => void;

Defined in: async-retryer.ts:134

Callback invoked after execution completes (success or failure) of each attempt

Parameters

args

Parameters<TFn>

retryer

AsyncRetryer<TFn>

Returns

void


onSuccess()?

ts
optional onSuccess: (result, args, retryer) => void;
optional onSuccess: (result, args, retryer) => void;

Defined in: async-retryer.ts:138

Callback invoked when execution succeeds

Parameters

result

Awaited<ReturnType<TFn>>

args

Parameters<TFn>

retryer

AsyncRetryer<TFn>

Returns

void


onTotalExecutionTimeout()?

ts
optional onTotalExecutionTimeout: (retryer) => void;
optional onTotalExecutionTimeout: (retryer) => void;

Defined in: async-retryer.ts:150

Callback invoked when the total execution time times out (maxTotalExecutionTime exceeded)

Parameters

retryer

AsyncRetryer<TFn>

Returns

void


throwOnError?

ts
optional throwOnError: boolean | "last";
optional throwOnError: boolean | "last";

Defined in: async-retryer.ts:158

Controls when errors are thrown:

  • 'last': Only throw the final error after all retries are exhausted
  • true: Throw every error immediately (disables retrying)
  • false: Never throw errors, return undefined instead

Default

ts
'last'
'last'
Subscribe to Bytes

Your weekly dose of JavaScript news. Delivered every Monday to over 100,000 devs, for free.

Bytes

No spam. Unsubscribe at any time.

Subscribe to Bytes

Your weekly dose of JavaScript news. Delivered every Monday to over 100,000 devs, for free.

Bytes

No spam. Unsubscribe at any time.