Você pode usar este componente Javascript de repetição de promessa para repetir uma função até que ela seja bem-sucedida, com um número definido de tentativas.
Exemplo:
promiseRetry((retry, number) => promiseFunction().catch(retry),{retries:3}) .then((result) => console.log(result)).catch(err => console.log(err))
Resumo do Teste
A promessaRetry deve retornar sucesso na primeira tentativa – Passar a
promessaRetry não deve tentar novamente em caso de falha se a nova tentativa não for chamada – Passar a
promessaRetry não deve tentar novamente na rejeição se a contagem de novas tentativas estiver definida como 0 – Passar
a promessaRetry deve rejeitar a promessa se o número máximo de tentativas tiver excedido – Passar
promessaRetria Não tente novamente se a promessa foi bem-sucedida – Passe