queue
La fonction queue() réserve un slot pour l'exécution courante afin de sérialiser ou limiter les exécutions concurrentes d'un même flow.
Exemple interactif
Syntaxe
typescript
function queue<
GenericConcurrency extends number
>(
params?: {
concurrency?: GenericConcurrency;
}
): AsyncGeneratorParamètres
params.concurrency: Nombre maximum d'exécutions simultanées autorisées pour la même référence de flow. La valeur par défaut est1.
Valeur de retour
Un générateur asynchrone qui émet un effet de queue et retourne une fonction release à appeler quand l'exécution peut libérer son slot, généralement dans un bloc finally.
Remarques
- L'état interne est stocké dans une
WeakMapdont la clé est la référence du flow exécuté. - Pour partager la même file d'attente entre plusieurs appels, réutilisez le même flow créé avec
F.create(...)ou la même fonction obtenue avecF.toFunction(...). - Si
release()n'est pas appelé, les exécutions suivantes restent bloquées dans la queue. - Si une même exécution yield plusieurs fois
queue(...), seul le premier effet rencontré est pris en compte par le runner.
Voir aussi
calledByNext- Appelle un callback quand une exécution suivante remplace l'actuellethrottling- Ignore ou reporte les appels trop rapprochésexec- Exécute un flow imbriqué dans le flow courant
