応答のエラー時に、ステータス コードとアクセス トークンがローカル ストレージに存在する場合、HTTP 要求を再試行するインターセプターを作成しました。
これは主に、使用している API (私には制御できない) からの不可解な応答の失敗に対処するために作成しました。理由もなく API エンドポイントが失敗する場合があるため、API のメンテナンスを制御できないため、HTTP 要求の送信を再試行するだけでよいと考えました。
primesis.factory('httpResponseErrorInterceptor', function ($q, $injector) {
return {
'responseError': function (response) {
if(response.status === 500 && localStorage.getItem('token')) {
var $http = $injector.get('$http');
return $http(response.config);
}
return $q.reject(response);
}
};
});
$httpProvider.interceptors.push('httpResponseErrorInterceptor');
ただし、これにより、API に実際にエラーがある場合に、インターセプターが無限に再試行することになります。
私が達成しようとしているのは、このインターセプターの再試行に制限を設けることです。カウンターを入れてみましたが、カウンターが次のインターセプター呼び出しに引き継がれないようです。
このような状況に対処するものを探していましたが、役に立ちませんでした。インターセプターの応答エラーの再試行を制限する方法はありますか?