Skip to content
advanced

Retry Logic with Async

Implement retry logic for failed async operations.

interface RetryOptions {
  maxAttempts: number;
  delayMs: number;
}

async function sleep(ms: number): Promise<void> {
  return new Promise((resolve) => setTimeout(resolve, ms));
}

async function withRetry<T>(
  fn: () => Promise<T>,
  options: RetryOptions
): Promise<T> {
  let lastError: Error | undefined;

  for (let attempt = 1; attempt <= __________...; attempt++) {
    try {
      return __________;
    } catch (error) {
      lastError = error as Error;
      if (attempt < options.maxAttempts) {
        __________...;
      }
    }
  }

  __________...;
}
0/4 filled tab moves · Ctrl+↵ submits · Ctrl+Shift+↵ runsstarter code