TypeScript

Sleep / Delay

admin by @admin ADMIN
11m ago
May 31, 2026
Public
0 0 up · 0 down Sign in to vote
The async/await-friendly version of `setTimeout`. The one-liner everyone re-invents — keep it in a util file. Optional AbortSignal lets you cancel mid-wait.
TypeScript
Raw
export function sleep(ms: number, signal?: AbortSignal): Promise<void> {
  return new Promise((resolve, reject) => {
    if (signal?.aborted) return reject(signal.reason);
    const timer = setTimeout(resolve, ms);
    signal?.addEventListener('abort', () => {
      clearTimeout(timer);
      reject(signal.reason);
    }, { once: true });
  });
}

// Usage
await sleep(1000);
await sleep(5000, AbortSignal.timeout(2000));   // throws after 2s
Tags

Save your own code snippets

Create a free account and build your private vault. Share publicly whenever you want.