export function abortableSleep()

in packages/sdk/src/fetch-util.ts [322:335]


export function abortableSleep(milliseconds: number, signal?: AbortSignal): Promise<void> {
  if (milliseconds <= 0) return Promise.resolve();
  return new Promise((resolve, reject) => {
    if (signal) {
      const abort = () => reject(signal.reason);
      if (signal.aborted) {
        abort();
        return;
      }
      signal.addEventListener('abort', abort);
    }
    setTimeout(resolve, milliseconds);
  });
}