Nœud While
Le nœud While permet d'exécuter une séquence de nœuds tant qu'une condition est vraie. Il permet de répéter une opération jusqu'à ce qu'une condition soit remplie, d'attendre qu'un état change, d'implémenter des boucles conditionnelles ou de faire du polling jusqu'à obtention d'un résultat.
Paramètres
| Paramètre | Type | Obligatoire | Défaut | Description |
|---|---|---|---|---|
| Condition | JavaScript (booléen) | ✅ | — | Exécutez du code JavaScript qui retourne un booléen pour déterminer si on reste dans la boucle ou si on en sort. |
| Mode de boucle | While / Do while | ✅ | — | Choix du comportement : While ou Do while. |
Condition
Exécutez du code JavaScript qui retourne un booléen :
true: la boucle continuefalse: la boucle s'arrête
Exemples :
context.data.status !== "completed"
context.variables.attempts < 5
context.lastResponse.data === undefined
Mode de boucle
Le toggle permet de choisir entre deux modes :
- While (Tant que) : vérifie la condition avant d'exécuter le code de la boucle
- Do while (Faire tant que) : exécute le code au moins une fois, puis vérifie la condition
Exécution
- La condition est évaluée
- Selon le mode choisi :
- While : exécute la boucle si la condition est
true - Do while : exécute d'abord la boucle, puis vérifie la condition
- While : exécute la boucle si la condition est
- La condition est réévaluée à chaque cycle
- La boucle s'arrête quand la condition retourne
false
Entrée
Le nœud évalue sa condition à partir des variables du contexte du flux ({{status}}, {{attempts}}, {{response.data}}, etc.) :
{
"status": "processing",
"attempts": 2
}
Sortie
Le nœud While ne produit pas de donnée propre : il contrôle l'exécution des nœuds de la boucle. Le contexte reste accessible aux nœuds de la boucle et peut être mis à jour par eux (ex. un compteur attempts incrémenté).
Exemple
Exemple 1 : Attendre un statut
Condition : {{order.status}} !== "processed"
Flux :
- While : Tant que le statut n'est pas "processed"
- Requête HTTP(S) : Vérifier le statut
- Wait : Attendre 5 secondes
- Retour à l'étape 1
Exemple 2 : Retry en mode Do while
Condition : {{attempts}} < 3 && {{success}} === false
Flux :
- Do while : Exécuter une première tentative, puis continuer tant que attempts < 3 et success = false
- Requête HTTP(S) : Tenter l'opération
- Condition : Vérifier le succès
- Incrémenter attempts
Assurez-vous que la condition peut devenir false (compteur, statut qui change) et ajoutez un nœud Wait dans la boucle pour éviter une boucle trop rapide qui saturerait l'exécution.