• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    해결됨

Axios에 connection timeout과 read timeout이 없음

23.12.08 09:57 작성 23.12.08 09:57 수정 조회수 257

0

안녕하세요? 짐코딩님! 유익한 강의 덕분에 잘 개발하고 있습니다!^^

 

Axios로 개발해보니 connection timeout과 read timeout 없이 단 하나의 타임아웃만 있는것 같습니다.

 

파이썬 코드를 예를 들자면 아래처럼 타임아웃을 나눠 쓸 수 있습니다.

아래 코드의 의미는 연결할때 1초 기다리고, 연결 이후 15초까지 연산시간을 기다려 줍니다.

import requests

url = 'http://example.com'

try:
    # timeout 매개변수를 사용하여 연결 타임아웃 1초, 읽기 타임아웃 15초로 설정
    response = requests.get(url, timeout=(1, 15))

    # HTTP 상태코드를 확인
    if response.status_code == 200:
        print('요청이 성공했습니다.')
    else:
        print(f'요청이 실패했습니다. 상태코드: {response.status_code}')

except requests.Timeout:
    print('타임아웃이 발생했습니다.')

except requests.RequestException as e:
    print(f'요청 중에 예외가 발생했습니다: {e}')

 

해당 기능이 중요한 이유는 연산 시간이 10초이상 걸리는 API가 있다고 가정을 할 경우, Axios 타임아웃을 15초로 지정하면 서버가 죽었을때도 유저는 무조건 15초간 대기하는 문제가 발생합니다. 하지만 위 파이썬 코드의 경우는 1초 이내로 서버 연결불가 판단을 하고 빠르게 유저에게 피드백을 줄 수 있습니다.

 

해당 기능이 Axios에 있는지, 만약 없다면 다른 대체 라이브러리 추천해주실수 있으실까요?

감사합니다.^^

 

답변 1

답변을 작성해보세요.

1

안녕하세요 🙂

Axios 모듈에는 그러한 설정이 없는것으로 알고있고요.

npm request 에 있었지만 deprecated 되었습니다.

axios를 많이 사용하기에 다른 라이브러리는 자주 사용해 보지 않았습니다.

npm trends에서 다른 라이브러리를 한번 확인해보시는 것을 권장드립니다.

https://npmtrends.com/axios-vs-fetch-vs-node-fetch-vs-request

bestksw님의 프로필

bestksw

질문자

2023.12.08

가장 많이 쓰는 라이브러리인데 이 기능이 없다는게 좀 충격적이네요..ㅜㅜ

 

네 알려주신 방법대로 한번 대체 라이브러리를 찾아보겠습니다.

 

감사합니다^^