Este documento foi traduzido por IA. Para informações precisas, consulte a versão em inglês.
Encerra o fluxo de eventos atual e todos os fluxos de eventos subsequentes disparados no mesmo despacho de evento. É comumente usado quando todos os fluxos de eventos sob o evento atual precisam ser abortados imediatamente devido a um erro global ou falha na validação de permissão.
O ctx.exitAll() é geralmente usado em contextos onde o JS é executável e quando é necessário interromper simultaneamente o fluxo de eventos atual e os fluxos de eventos subsequentes disparados por esse evento:
| Cenário | Descrição |
|---|---|
| Fluxo de eventos | A validação do fluxo de eventos principal falha (ex: permissões insuficientes), exigindo a interrupção do fluxo principal e de quaisquer fluxos subsequentes sob o mesmo evento que ainda não foram executados. |
| Regras de vinculação | Quando a validação de vinculação falha, a vinculação atual e as vinculações subsequentes disparadas pelo mesmo evento devem ser encerradas. |
| Eventos de ação | A validação pré-ação falha (ex: verificação de permissão antes da exclusão), exigindo o impedimento da ação principal e das etapas subsequentes. |
Diferença do
ctx.exit(): Octx.exit()encerra apenas o fluxo de eventos atual; octx.exitAll()encerra o fluxo de eventos atual e quaisquer fluxos de eventos subsequentes não executados no mesmo despacho de evento.
Chamar ctx.exitAll() lança uma exceção interna FlowExitAllException, que é capturada pelo motor de fluxo para parar a instância do fluxo de eventos atual e os fluxos de eventos subsequentes sob o mesmo evento. Uma vez chamado, as instruções restantes no código JS atual não serão executadas.
| Método | Escopo de atuação |
|---|---|
ctx.exit() | Encerra apenas o fluxo de eventos atual; os fluxos de eventos subsequentes não são afetados. |
ctx.exitAll() | Encerra o fluxo de eventos atual e interrompe os fluxos de eventos subsequentes executados sequencialmente sob o mesmo evento. |
ctx.exitAll(), os fluxos de eventos subsequentes não serão executados.ctx.exitAll() em um fluxo de eventos não interromperá outros fluxos de eventos concorrentes (pois são independentes).ctx.exitAll(), o código subsequente no JS atual não será executado. Recomenda-se explicar o motivo ao usuário via ctx.message, ctx.notification ou um modal antes de chamá-lo.FlowExitAllException; deixe o motor de fluxo lidar com isso.ctx.exit().ctx.exitAll() encerra apenas o fluxo de eventos atual e não interrompe outros fluxos de eventos concorrentes.