JavaScriptでリトライ処理を実装する

リクエスト失敗時にリトライ処理を実装してみる
リクエスト処理を再起関数にしてしまうやり方。

const retryRequest = async (count = 0) => {
    const res = await axios.post('/');
    if(res.status === 200 || count === 5) {
        return res;
    }
    retryRequest(count + 1);
}
retryRequest();

カウントを取ってステータスコード200が返ってくるかリトライ数が5(決め打ちの上限)になるまで処理を繰り返す。

別パターンの実装方法もあって、while分を使用するやり方

let count: number = 0;
const maxTries: number = 5;
while(true) {
    try {
        // リクエスト処理
    } catch (err: Error) {
        // エラーハンドリング
        if (++count === maxTries) {
            throw new Error(e);
        }
    }
}

※こっちのロジックはテストしてないです

関連記事