Skip to content

withTimeout

지정한 시간보다 늦은 시간에 응답할 경우 TimeoutError 에러로 처리해요.

이 함수는 특정한 시간 이후 보다 value의 응답이 늦게 올 경우 TimeoutError로 reject되는 Promise를 반환해요. async/await 함수를 사용하는 경우에 함수의 최대 실행 시간을 정할 수 있어요.

인터페이스

typescript
function withTimeout<T>(run: () => Promise<T>, ms: number): Promise<T>;

파라미터

  • run (() => Promise<T>): 실행할 비동기 함수.
  • ms (number): Promise의 최대 실행 값을 지정할 밀리세컨드.

반환 값

(Promise<T>): 주어진 비동기 함수가 반환하는 Promise.

예시

기본 사용법

typescript
async function fetchData() {
  const response = await fetch('https://example.com/data');
  return response.json();
}

try {
  const data = await withTimeout(fetchData, 1000);
  console.log(data); // `fetchData`가 1초 이내에 완료되면 가져온 데이터를 로깅해요.
} catch (error) {
  console.error(error); // `fetchData`가 1초 이내에 완료되지 않으면 'TimeoutError'를 로깅해요.
}

MIT 라이선스에 따라 배포됩니다.