retry
asyncRetries an async function until it succeeds or max attempts are reached. Uses exponential backoff between retries.
Signature
retry<T>(fn: () => Promise<T>, options?: { retries?: number; delay?: number; backoff?: number; onRetry?: (error: Error, attempt: number) => void }): Promise<T>Parameters
| Name | Type | Description |
|---|---|---|
fn | () => Promise<T> | The async function to retry |
options? | { retries?: number; delay?: number; backoff?: number; onRetry?: Function } | Retry options |
options.retries? | number | Maximum number of retry attemptsDefault: 3 |
options.delay? | number | Delay between retries in millisecondsDefault: 1000 |
options.backoff? | number | Backoff multiplierDefault: 2 |
Returns
Promise<T> - Returns the result of the function
Examples
Retry API call
import { retry } from 'dashlite'
const result = await retry(
async () => await fetchData(),
{ retries: 3, delay: 1000 }
)With exponential backoff
import { retry } from 'dashlite'
await retry(
async () => await apiCall(),
{ retries: 5, delay: 100, backoff: 2 }
)
// Waits: 100ms, 200ms, 400ms, 800ms, 1600msAvailable since version 1.2.0