Skip to content

queue

La fonction createQueue() crée une file FIFO qui limite le nombre de tâches exécutées en parallèle et expose leurs résultats via des promesses.

Exemple interactif

Syntaxe

typescript
interface Queue {
	add<GenericOutput extends unknown>(
		theFunction: () => GenericOutput
	): Promise<
		| Awaited<GenericOutput>
		| DEither.Left<"execution-error", unknown>
	>;
	addExternal(): Promise<() => void>;
}

interface CreateQueueParams {
	concurrency?: number;
}

function createQueue(
	params?: CreateQueueParams
): Queue;

Paramètres

  • params.concurrency : Nombre maximal de tâches exécutées en parallèle. Les valeurs inférieures à 1 retombent sur 1.

Valeur de retour

Un objet Queue avec :

  • add : ajoute une tâche à la file et retourne une promesse résolue avec son résultat ou un DEither.left("execution-error", error) si l'exécution échoue.
  • addExternal : réserve un slot d'exécution et retourne une fonction release à appeler pour libérer ce slot plus tard.

Voir aussi

  • externalPromise - Crée une promesse contrôlable depuis l'extérieur
  • callThen - Uniformise le traitement sync/async d'une valeur
  • asyncRetry - Relance une opération asynchrone selon une stratégie de retry

Diffusé sous licence MIT.