Create a retry utility that calls an async fn up to retries times with exponential backoff. Support abort on certain errors.
Skip to solutionKEEP THE
mediumFrontend
Implement promiseRetry(fn, retries, delay) with exponential backoff
1.2k views
01
Understand the problem
retrypromiseexponential-backoff
02
Attempt it yourself
Sketch your approach before reading the solution — that's what interviews test.
Nudge consolestandby
Stuck? Beam a request up — the console returns a conceptual nudge that guides your logic without spoiling the implementation.
03
Study the solution
Approach: Loop with try/catch, await sleep(delay * 2**attempt). Optionally check shouldRetry(err).
function sleep(ms) { return new Promise(r => setTimeout(r, ms)); }
async function promiseRetry(fn, { retries = 3, delay = 100, factor = 2, shouldRetry = () => true } = {}) {
let lastError;
for
Solution ready — 2 min read
Classified // press E to declassify
04
Join the discussion
Discussion (0)
Sign in to join the discussion.
No responses yet. Be the first to share what you think.
Transmission complete // awaiting log
KEEP THE
STREAK ALIVE.
Dossier 111 of 190 decoded in the JavaScript Coding track. One more won't hurt.