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 à1retombent sur1.
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 unDEither.left("execution-error", error)si l'exécution échoue.addExternal: réserve un slot d'exécution et retourne une fonctionreleaseà appeler pour libérer ce slot plus tard.
Voir aussi
externalPromise- Crée une promesse contrôlable depuis l'extérieurcallThen- Uniformise le traitement sync/async d'une valeurasyncRetry- Relance une opération asynchrone selon une stratégie de retry
