hardTechnical2024

Throttled API poll client

2.3k views
01

Understand the problem

Implement the scenario utility: Throttled API poll client. Discuss edge cases, runtime performance, and alternative paradigms.

js-codingutilityalgorithm
02

Attempt it yourself

Sketch your approach before reading the solution — that's what interviews test.

Stuck? AI Nudge Available

Get a conceptual hint to guide your logic without spoiling the final implementation.

03

Study the solution

The solution is waiting

Give it an honest attempt first — then compare your thinking with the full walkthrough.

04

Read the code

Example usage
function poll(fn, validate, interval, maxAttempts) {
  let attempts = 0;
  return new Promise((resolve, reject) => {
    function execute() {
      fn().then(val => {
        attempts++;
        if (validate(val)) resolve(val);
        else if (attempts >= maxAttempts) reject(new Error('Max attempts reached'));
        else setTimeout(execute, interval);
      }).catch(reject);
    }
    execute();
  });
}

// Example placeholder (actual usage requires endpoint)
// poll(() => Promise.resolve({ ok: true }), res => res.ok, 100, 3);
05

Join the discussion

Discussion (0)

Sign in to join the discussion.

No responses yet. Be the first to share what you think.