Duration to sleep in milliseconds (negative values resolve immediately)
Optionalsignal: AbortSignalOptional AbortSignal to cancel the sleep early
Promise resolving to SleepResult with state information
// Basic sleep
const result = await sleep(500);
if (result.isOk) {
console.log('Slept for 500ms');
}
// With abort signal
const controller = new AbortController();
setTimeout(() => controller.abort(), 100);
const result = await sleep(1000, controller.signal);
if (result.isAborted) {
console.log('Sleep was aborted:', result.reason);
}
// Check if already aborted
const aborted = new AbortController();
aborted.abort();
const result = await sleep(1000, aborted.signal);
// Immediately returns with isAborted: true
Pauses execution for a specified duration with optional abort support.
Returns a SleepResult discriminated union indicating success, error, or abort. Unlike a plain setTimeout promise, this provides detailed state information through the result object. Negative durations resolve immediately as success. When aborted via AbortSignal, cleans up the timer and returns abort state.