@adviser/cement - v0.0.0
    Preparing search index...

    Function sleep

    • 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.

      Parameters

      • ms: number

        Duration to sleep in milliseconds (negative values resolve immediately)

      • Optionalsignal: AbortSignal

        Optional AbortSignal to cancel the sleep early

      Returns Promise<SleepResult>

      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