이 문서는 AI에 의해 번역되었습니다. 정확한 정보는 영어 버전을 참조하세요.
현재 이벤트 흐름과 동일한 이벤트 디스패치(Dispatch) 내에서 트리거된 모든 후속 이벤트 흐름을 종료합니다. 주로 전역 오류나 권한 검증으로 인해 현재 이벤트 하위의 모든 이벤트 흐름을 즉시 중단해야 할 때 사용합니다.
ctx.exitAll()은 일반적으로 JS 실행이 가능한 컨텍스트에서 현재 이벤트 흐름과 해당 이벤트로 인해 트리거된 후속 이벤트 흐름을 동시에 중단해야 할 때 사용됩니다.
| 시나리오 | 설명 |
|---|---|
| 이벤트 흐름 | 메인 이벤트 흐름 검증 실패 시(예: 권한 부족), 메인 흐름 및 동일 이벤트 내에서 아직 실행되지 않은 후속 흐름을 중단해야 하는 경우 |
| 연동 규칙 | 연동 검증을 통과하지 못했을 때, 현재 연동 및 동일 이벤트로 트리거된 후속 연동을 종료해야 하는 경우 |
| 작업 이벤트 | 작업 전 사전 검증 실패 시(예: 삭제 전 권한 체크), 메인 작업 및 후속 단계를 차단해야 하는 경우 |
ctx.exit()와의 차이점:ctx.exit()는 현재 이벤트 흐름만 종료합니다. 반면ctx.exitAll()은 현재 이벤트 디스패치에서 아직 실행되지 않은 후속 이벤트 흐름까지 모두 종료합니다.
ctx.exitAll()을 호출하면 내부적으로 FlowExitAllException이 발생하며, 이벤트 흐름 엔진이 이를 캡처하여 현재 이벤트 흐름 인스턴스와 동일 이벤트 하위의 후속 이벤트 흐름을 중지합니다. 호출된 이후의 현재 JS 코드 내 나머지 구문은 실행되지 않습니다.
| 메서드 | 작용 범위 |
|---|---|
ctx.exit() | 현재 이벤트 흐름만 종료하며, 후속 이벤트 흐름은 영향을 받지 않습니다. |
ctx.exitAll() | 현재 이벤트 흐름을 종료하고, 동일 이벤트 하위에서 순차적으로 실행되는 후속 이벤트 흐름을 중단합니다. |
ctx.exitAll()을 호출하면 후속 이벤트 흐름은 더 이상 실행되지 않습니다.ctx.exitAll()을 호출해도 이미 병렬로 시작된 다른 이벤트 흐름은 중단되지 않습니다(각각 독립적으로 동작).ctx.exitAll() 호출 후 현재 JS의 후속 코드는 실행되지 않습니다. 호출 전에 ctx.message, ctx.notification 또는 팝업을 통해 사용자에게 중단 사유를 설명하는 것이 좋습니다.FlowExitAllException을 직접 캡처할 필요는 없으며, 이벤트 흐름 엔진이 처리하도록 두면 됩니다.ctx.exit()를 사용하세요.ctx.exitAll()은 현재 이벤트 흐름만 종료하며, 이미 병렬로 실행 중인 다른 이벤트 흐름을 방해하지 않습니다.