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.