Ce document a été traduit par IA. Pour des informations précises, veuillez consulter la version anglaise.
Termine le flux d'événements actuel ainsi que tous les flux d'événements subséquents déclenchés lors de la même répartition d'événements. Il est couramment utilisé lorsque tous les flux d'événements liés à l'événement actuel doivent être interrompus immédiatement en raison d'une erreur globale ou d'un échec de validation des permissions.
ctx.exitAll() est généralement utilisé dans des contextes où du code JS est exécutable et lorsqu'il est nécessaire d'interrompre simultanément le flux d'événements actuel et les flux d'événements subséquents déclenchés par cet événement :
| Scénario | Description |
|---|---|
| Flux d'événements | La validation du flux d'événements principal échoue (ex: permissions insuffisantes), nécessitant l'arrêt du flux principal et de tous les flux suivants non encore exécutés pour le même événement. |
| Règles de liaison | Lorsqu'une validation de liaison échoue, la liaison actuelle et les liaisons suivantes déclenchées par le même événement doivent être terminées. |
| Événements d'action | La validation préalable à l'action échoue (ex: vérification des permissions avant suppression), nécessitant d'empêcher l'action principale et les étapes suivantes. |
Différence avec
ctx.exit():ctx.exit()termine uniquement le flux d'événements actuel ;ctx.exitAll()termine le flux d'événements actuel et tous les flux d'événements subséquents non encore exécutés dans la même répartition d'événements.
L'appel à ctx.exitAll() lève une exception interne FlowExitAllException, qui est capturée par le moteur de flux pour arrêter l'instance du flux d'événements actuel et les flux d'événements suivants liés au même événement. Une fois appelé, les instructions restantes dans le code JS actuel ne seront pas exécutées.
| Méthode | Portée |
|---|---|
ctx.exit() | Termine uniquement le flux d'événements actuel ; les flux d'événements suivants ne sont pas affectés. |
ctx.exitAll() | Termine le flux d'événements actuel et interrompt les flux d'événements suivants exécutés de manière séquentielle sous le même événement. |
ctx.exitAll(), les flux d'événements suivants ne seront pas exécutés.ctx.exitAll() dans un flux d'événements n'interrompra pas les autres flux d'événements déjà lancés (car ils sont indépendants).ctx.exitAll(), le code suivant dans le JS actuel ne sera pas exécuté. Il est recommandé d'expliquer la raison à l'utilisateur via ctx.message, ctx.notification ou une fenêtre modale avant l'appel.FlowExitAllException ; laissez le moteur de flux s'en charger.ctx.exit().ctx.exitAll() termine uniquement le flux d'événements actuel et n'interrompt pas les autres flux d'événements déjà en cours.