Viewing File: /home/ubuntu/efiexchange-node-base/node_modules/@solana/web3.js/src/utils/promise-timeout.ts

export function promiseTimeout<T>(
  promise: Promise<T>,
  timeoutMs: number,
): Promise<T | null> {
  let timeoutId: ReturnType<typeof setTimeout>;
  const timeoutPromise: Promise<null> = new Promise(resolve => {
    timeoutId = setTimeout(() => resolve(null), timeoutMs);
  });

  return Promise.race([promise, timeoutPromise]).then((result: T | null) => {
    clearTimeout(timeoutId);
    return result;
  });
}
Back to Directory File Manager