Axiosブロッカーでのtimeoutエラーの処理
7233 ワード
この文章もhttps://jinjoopark.notion.site/Axios-interceptors-timeout-763beb16bf0f43048c4d9ecfd9ac5d70で見ることができます.
axiosリクエストが長くなるとリクエストは中止され、タイムアウト処理を行う場合はリクエスト構成に
axiosリクエストでは、サーバが408(タイムアウト)エラーまたは を送信していないを送信していますが、待ち時間が長く、リクエスト時間を短縮したい場合は
(サーバにタイムアウト時間の短縮が要求される場合があります) 設定したほうがいいです.
次のコード例では、
例は、
タイムアウト設定が完了するとaxiosリクエストが長くなると、リクエストは停止し、
なお、
🚨 注意事項
timeoutエラーが発生すると、
光学的スクリーニング構文を使用するか、または
https://axios-http.com/kr/docs/interceptors https://axios-http.com/kr/docs/req_config https://github.com/axios/axios/issues/1174
タイムアウトの設定
axiosリクエストが長くなるとリクエストは中止され、タイムアウト処理を行う場合はリクエスト構成に
timeout
を設定する必要があります.axiosリクエストでは、
timeout
のデフォルトは0
(無限大)です.(サーバにタイムアウト時間の短縮が要求される場合があります)
次のコード例では、
interceptors.request
を使用してtimeout
を設定する方法について説明します.例は、
config.method
の条件を追加し、get
メソッドの場合にのみ設定します.// axios 인스턴스 생성
const instance = axios.create({
baseURL: 'https://api.example.com',
headers: {
...
},
// 조건문 없이 모든 요청에 대해 일괄 적용하고 싶다면 인스턴스 생성 시 설정하면 됩니다.
// timeout: 5000,
});
// request가 발생했을 때 실행될 interceptors를 추가
instance.interceptors.request.use(
// config는 요청에 대한 정보가 담긴 객체입니다. 궁금하면 console로 찍어보세요.
(config) => {
// config.method를 조회하여 get 메서드일 때만 timeout을 설정합니다.
if (config.method === 'get') {
config.timeout = 12000;
}
return config;
},
(error) => {
...
},
);
タイムアウトエラーの処理
タイムアウト設定が完了するとaxiosリクエストが長くなると、リクエストは停止し、
error
に戻ります.なお、
code
の値はECONNABORTED
であるため、条件として取り扱うことができる.// 응답 인터셉터 추가하기
axios.interceptors.response.use(function (response) {
// 2xx 범위에 있는 상태 코드는 이 함수를 트리거 합니다.
// 응답 데이터가 있는 작업 수행
return response;
}, function (error) {
// 2xx 외의 범위에 있는 상태 코드는 이 함수를 트리거 합니다.
// 응답 오류가 있는 작업 수행
const code = error.code;
const status = error.response?.status;
// timeout이 발생한 경우와 서버에서 408 에러를 반환할 때를 동시에 처리하겠습니다.
if (code === "ECONNABORTED" || status === 408) {
alert("요청이 만료되었습니다.");
}
return Promise.reject(error);
});
💡 テストが必要な場合はtimeoutを100に設定し、呼び出しを試みます.🚨 注意事項
timeoutエラーが発生すると、
error.response
はundefined
になります.error.response.status
の値response
のようなブロックからコードが取り出して値が書き込まれた場合、エラーが発生します.光学的スクリーニング構文を使用するか、または
error.response
に対して個別の条件処理を行う必要がある.🗃 コメントドキュメント
Reference
この問題について(Axiosブロッカーでのtimeoutエラーの処理), 我々は、より多くの情報をここで見つけました https://velog.io/@jinjoo/Axios-interceptors인터셉터에서-timeout-오류-처리하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol