[解決済み] アクシオスライブラリのタイムアウト機能が動作しない
2022-03-07 21:17:50
質問
を設定しました。
axios.defaults.timeout = 1000;
APIを提供してくれているサーバーを停止しました。
しかし、リクエストを送信してからタイムアウトするまでに1秒以上かかります。
私のリクエストはこのような感じです。
import axios from 'axios';
axios.defaults.timeout = 1000;
return axios.post(`${ROOT_URL}/login/${role}`, creds).then((response) => {
console.log(response);
if(response.status === 200) {
// If login was successful, set the token in local storage
localStorage.setItem(`${role}_log_toks`, JSON.stringify(response.data));
// Dispatch the success action
dispatch(receiveLogin(response.data));
return response;
}
}).catch(err => {
console.log(err);
// If there was a problem, we want to
// dispatch the error condition
if(err.data && err.status === 404) {
dispatch(loginError(err.data));
} else {
dispatch(loginError('Please check your network connection and try again.'));
}
return err;
});
も試しました。
return axios.post(`${ROOT_URL}/login/${role}`, creds, {timeout: 1000}).then...
Axiosの取得が止まらず、5~10分後にようやくネットワークエラーが表示されます。タイムアウトを処理する他のテクニックがあることは理解していますが、なぜaxiosのタイムアウト機能は動作しないのでしょうか?axiosがフェッチを停止しない理由は何でしょうか?
EDITです。 コメントにもあるように、私も試してみました。
import axios from 'axios';
const httpClient = axios.create();
httpClient.defaults.timeout = 500;
return httpClient.post(`${ROOT_URL}/login/${role}`, creds)
.then(handleResponse)
解決方法は?
ここから
アクシオス問題
(ありがとうございます
zhuyifan2013
が解決策を与えてくれた)、私は、このような
アクシオス
timeout
は
応答タイムアウト
ではない
接続タイムアウト
.
を通してURLをリクエストしたとします。 アクシオス で、サーバーが応答するのに時間がかかっている場合、この場合は アクシオス のタイムアウトが機能します。
しかし、インターネットに接続していない、または要求しているIPアドレスやドメイン名が存在しない場合、この場合 アクシオス のタイムアウトは機能しません。
次のコードを使用する必要があります。
const source = CancelToken.source();
const timeout = setTimeout(() => {
source.cancel();
// Timeout Logic
}, 10000);
axios.get(ip + '/config', {cancelToken: source.token}).then((result) => {
// Clear The Timeout
clearTimeout(timeout);
// Handle your response
});
有効な接続がある場合、まだ
タイムアウトロジック
ブロックが実行されます。そのため
timeout
.
関連
-
[解決済み] jQueryで、ユーザーがそのフィールドを編集している間、テキストフィールドの最初の文字を大文字にするにはどうすればよいですか?
-
[解決済み】JS ファイルが net::ERR_ABORTED 404 (Not Found) を取得する)
-
[解決済み】WebSocket接続に失敗しました。WebSocket のハンドシェイク中にエラーが発生しました。予期しない応答コードです。400
-
[解決済み】PhantomJS 2.1.1を使用してReactJSアプリケーションをレンダリングできない理由とは?
-
[解決済み】 \u003C とは何ですか?
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] 私のJavaScriptコードは "No 'Access-Control-Allow-Origin' header is present on requested resource "というエラーを受け取りますが、Postmanはそうならないのはなぜですか?
-
[解決済み] JavaScriptの.trim()がIEで機能しない
-
[解決済み] AxiosのHTTPエラーからステータスコードを取得するにはどうすればよいですか?
-
[解決済み】Ajaxの成功イベントが動作しない。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】パッシブイベントリスナー内部でpreventDefaultができない
-
[解決済み】TypeError: 'undefined'はオブジェクトではありません。
-
[解決済み】Uncaught ReferenceError: angular is not defined - AngularJSが動作しない。
-
[解決済み】webpack-dev-serverにリモート接続すると、「Invalid Host header」というメッセージが表示されます。
-
[解決済み】Google Conversionsが動作しない - スクリプトが読み込まれない
-
[解決済み】別のjsファイル内でJavaScriptの関数を呼び出す
-
[解決済み】JS ファイルが net::ERR_ABORTED 404 (Not Found) を取得する)
-
[解決済み】Kendo Observable Bindingと併用する場合、Kendo Switch Labelsを変更することは可能ですか?[Kendo-UI]です。
-
[解決済み】PhantomJS 2.1.1を使用してReactJSアプリケーションをレンダリングできない理由とは?
-
[解決済み】Javascript、[オブジェクトHTMLInputElement]を表示中。]