Skip to main content

Function: retryDelayMs()

retryDelayMs(attempt, retryAfter?): number

Defined in: src/core/request.ts:67

Milliseconds to wait before retry number attempt + 1: the server's Retry-After (capped at 120s) when present, else exponential backoff 0.5s * 2^attempt capped at 4s, with 50-100% jitter.

Parameters​

attempt​

number

Zero-based index of the attempt that just failed: 0 → 0.5 s, 1 → 1 s, 2 → 2 s, 3+ → 4 s (before jitter).

retryAfter?​

string

The response's Retry-After header: seconds or an HTTP-date. Blank or unparseable falls back to the backoff schedule; a date in the past counts as 0.

Returns​

number

Milliseconds to sleep. From Retry-After: exactly min(120, seconds) * 1000, no jitter. Otherwise the backoff delay scaled by a random factor in [0.5, 1).

Example​

import { retryDelayMs } from './core/request.js'; // not re-exported from the package root

retryDelayMs(0); // 250..500 ms
retryDelayMs(5); // 2000..4000 ms (capped at 4 s)
retryDelayMs(0, '3'); // 3000 ms
retryDelayMs(0, '600'); // 120000 ms (capped at 120 s)