この解答例はChatGPTによって生成されています,正しいかは自己判断で。 皆の投稿からも解答例が見つかるかもしれませんよ。

BFE.devでのAI解答例 - JavaScript コーディング問題
64. Promise rejectされるときに自動的に実行し直す

function fetchWithAutoRetry(fetcher, count) {  return new Promise((resolve, reject) => {    fetcher()      .then(resolve)      .catch((error) => {        if (count <= 0) {          reject(error);        } else {          fetchWithAutoRetry(fetcher, count - 1)            .then(resolve)            .catch(reject);        }      });  });}

上記のコードでは、fetcher()を実行し、成功した場合はresolveされ、失敗した場合はcatchされます。

失敗した場合にもしcountが0以下なら最大retry回数を超えたので、そのままerrorrejectします。

countが0より大きい場合、fetchWithAutoRetry関数を再帰的に呼び出して自動retryします。retry回数を1つ減らして実行し、再度成功したらresolveされ、失敗したら再度catchされます。retryが最大回数を超えるまで再帰的に実行されます。