Skip to content

backoff ​

The backoff function executes an asynchronous action with automatic retries and progressive delays between attempts, using backoff and jitter strategies.

Syntax ​

typescript
await backoff(action, options?)

Parameters ​

NameTypeDescription
actionFunctionAsynchronous function to be executed and retried in case of error.
optionsobject(Optional) Advanced backoff and jitter configuration.

Options ​

  • backoffMode ('fixed' | 'linear' | 'exponential'): Delay increase strategy (default: 'exponential').
  • initialDelay (number): Initial delay in ms (default: 500).
  • jitterMode ('none' | 'full' | 'equal' | 'decorrelated'): Random delay variation strategy (default: 'full').
  • maxDelay (number): Maximum delay in ms (default: 60000).
  • maxAttempts (number): Maximum number of attempts (default: 5).
  • onRetry (Function): Function called on each retry, receiving the attempt number and current delay.

Return Value ​

TypeDescription
PromiseResolves with the result of the action or rejects after all attempts.

Examples ​

typescript
await backoff(() => fetch('/api/data'), { maxAttempts: 3, backoffMode: 'linear' });

Notes ​

  • Throws an error if parameters are invalid.
  • Useful for handling temporary failures in asynchronous operations, such as HTTP requests.

References ​

Released under the MIT License.