Este documento ha sido traducido por IA. Para información precisa, consulte la versión en inglés.
ctx.exitAll()
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.
Escenarios de uso
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:
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.
Definición de tipo
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.
Comparación con ctx.exit()
Modo de ejecución
- Ejecución secuencial (sequential): Los flujos de eventos bajo el mismo evento se ejecutan en orden. Después de que cualquier flujo de eventos llame a
ctx.exitAll(), los flujos de eventos posteriores no se ejecutarán. - Ejecución paralela (parallel): Los flujos de eventos bajo el mismo evento se ejecutan en paralelo. Llamar a
ctx.exitAll()en un flujo de eventos no interrumpirá otros flujos de eventos concurrentes (ya que son independientes).
Ejemplos
Terminar todos los flujos de eventos cuando falla la validación de permisos
Terminar cuando falla la validación previa global
Elección entre ctx.exit() y ctx.exitAll()
Mostrar un aviso antes de terminar
Notas
- Después de llamar a
ctx.exitAll(), el código posterior en el JS actual no se ejecutará. Se recomienda explicar el motivo al usuario a través dectx.message,ctx.notificationo un modal antes de realizar la llamada. - El código de negocio generalmente no necesita capturar
FlowExitAllException; deje que el motor de flujos lo maneje. - Si solo necesita detener el flujo de eventos actual sin afectar a los posteriores, use
ctx.exit(). - En modo paralelo,
ctx.exitAll()solo termina el flujo de eventos actual y no interrumpe otros flujos de eventos concurrentes.
Relacionado
- ctx.exit(): Termina solo el flujo de eventos actual
- ctx.message: Mensajes de aviso
- ctx.modal: Ventana modal de confirmación

