Skip to solution
mediumFrontend

Implement promiseRetry(fn, retries, delay) with exponential backoff

1.2k views
01

Understand the problem

Create a retry utility that calls an async fn up to retries times with exponential backoff. Support abort on certain errors.

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.

Back to track