Este documento ha sido traducido por IA. Para información precisa, consulte la versión en inglés.
Termina el flujo de eventos actual y todos los flujos de eventos posteriores activados en el mismo despacho de eventos. Se utiliza comúnmente cuando es necesario abortar inmediatamente todos los flujos de eventos bajo el evento actual debido a un error global o a una falla en la validación de permisos.
ctx.exitAll() se utiliza generalmente en contextos donde se puede ejecutar JS y es necesario abortar simultáneamente el flujo de eventos actual y los flujos de eventos posteriores activados por ese evento:
| Escenario | Descripción |
|---|---|
| Flujo de eventos | La validación del flujo de eventos principal falla (por ejemplo, permisos insuficientes), lo que requiere la terminación del flujo principal y de cualquier flujo posterior bajo el mismo evento que aún no se haya ejecutado. |
| Reglas de vinculación | Cuando la validación de vinculación falla, se debe terminar la vinculación actual y las vinculaciones posteriores activadas por el mismo evento. |
| Eventos de operación | La validación previa a la operación falla (por ejemplo, verificación de permisos antes de eliminar), lo que requiere evitar la operación principal y los pasos posteriores. |
Diferencia con
ctx.exit():ctx.exit()solo termina el flujo de eventos actual;ctx.exitAll()termina el flujo de eventos actual y cualquier flujo de eventos posterior no ejecutado en el mismo despacho de eventos.
Llamar a ctx.exitAll() lanza una excepción interna FlowExitAllException, que es capturada por el motor de flujos para detener la instancia del flujo de eventos actual y los flujos de eventos posteriores bajo el mismo evento. Una vez invocada, las sentencias restantes en el código JS actual no se ejecutarán.
| Método | Alcance |
|---|---|
ctx.exit() | Solo termina el flujo de eventos actual; los flujos de eventos posteriores no se ven afectados. |
ctx.exitAll() | Termina el flujo de eventos actual y aborta los flujos de eventos posteriores ejecutados secuencialmente bajo el mismo evento. |
ctx.exitAll(), los flujos de eventos posteriores no se ejecutarán.ctx.exitAll() en un flujo de eventos no interrumpirá otros flujos de eventos concurrentes (ya que son independientes).ctx.exitAll(), el código posterior en el JS actual no se ejecutará. Se recomienda explicar el motivo al usuario a través de ctx.message, ctx.notification o un modal antes de realizar la llamada.FlowExitAllException; deje que el motor de flujos lo maneje.ctx.exit().ctx.exitAll() solo termina el flujo de eventos actual y no interrumpe otros flujos de eventos concurrentes.