Skip to content

asyncRetry ​

Les helpers useAsyncRetry() et createAsyncRetry() relancent une fonction asynchrone tant qu'un critère de retry est vrai, avec options pour le nombre d'essais, le délai et le logging.

Exemple interactif ​

Syntaxe ​

typescript
interface CreateAsyncRetryOptions {
	maxRetry: number;
	timeToSleep?: number;
	log?: boolean;
}

function useAsyncRetry<
	GenericOutput extends unknown
>(
	retryFunction: () => Promise<GenericOutput>,
	shouldRetry: (result: GenericOutput) => boolean,
	options: CreateAsyncRetryOptions
): Promise<GenericOutput>;

function createAsyncRetry<
	GenericAnyFunction extends ((...args: any[]) => Promise<any>)
>(
	retryFunction: GenericAnyFunction,
	checkFunction: (result: Awaited<ReturnType<GenericAnyFunction>>) => boolean,
	options: CreateAsyncRetryOptions
): GenericAnyFunction;

Paramètres ​

  • retryFunction : Fonction asynchrone à réessayer.
  • shouldRetry / checkFunction : Décide si un nouvel essai est nécessaire à partir du résultat précédent.
  • options : Options de retry (maxRetry, timeToSleep, log).

Valeur de retour ​

  • useAsyncRetry : Une promesse résolue avec le dernier résultat (après succès ou épuisement des retries).
  • createAsyncRetry : Une fonction décorée qui applique la logique de retry à chaque appel.

Voir aussi ​

  • sleep - Pause asynchrone utilisée dans certains scénarios de retry

Diffusé sous licence MIT.