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

asyncRetry

Function: asyncRetry()

ts
function asyncRetry<TFn>(fn, initialOptions): (...args) => Promise<undefined | Awaited<ReturnType<TFn>>>
function asyncRetry<TFn>(fn, initialOptions): (...args) => Promise<undefined | Awaited<ReturnType<TFn>>>

Defined in: async-retryer.ts:663

Creates a retry-enabled version of an async function. This is a convenience wrapper around the AsyncRetryer class that returns the execute method.

Type Parameters

TFn extends AnyAsyncFunction

Parameters

fn

TFn

The async function to add retry functionality to

initialOptions

AsyncRetryerOptions<TFn> = {}

Configuration options for the retry behavior

Returns

Function

A new function that executes the original with retry logic

Parameters

args

...Parameters<TFn>

Returns

Promise<undefined | Awaited<ReturnType<TFn>>>

Example

typescript
// Define your async function normally
async function fetchData(url: string) {
  const response = await fetch(url)
  if (!response.ok) throw new Error('Request failed')
  return response.json()
}

// Create retry-enabled function
const fetchWithRetry = asyncRetry(fetchData, {
  maxAttempts: 3,
  backoff: 'exponential',
  baseWait: 1000,
  jitter: 0.1
})

// Call it multiple times
const data1 = await fetchWithRetry('/api/data1')
const data2 = await fetchWithRetry('/api/data2')
// Define your async function normally
async function fetchData(url: string) {
  const response = await fetch(url)
  if (!response.ok) throw new Error('Request failed')
  return response.json()
}

// Create retry-enabled function
const fetchWithRetry = asyncRetry(fetchData, {
  maxAttempts: 3,
  backoff: 'exponential',
  baseWait: 1000,
  jitter: 0.1
})

// Call it multiple times
const data1 = await fetchWithRetry('/api/data1')
const data2 = await fetchWithRetry('/api/data2')