AI翻訳通知
このドキュメントはAIによって翻訳されました。正確な情報については英語版をご参照ください。
ctx.exitAll()
現在のイベントフローと、同じイベントディスパッチ内でトリガーされた後続のすべてのイベントフローを終了します。グローバルエラーや権限チェックにより、現在のイベント配下のすべてのイベントフローを即座に中止する必要がある場合によく使用されます。
適用シーン
ctx.exitAll() は通常、以下の JS 実行コンテキストにおいて、現在のイベントフローと、そのイベントによってトリガーされる後続のイベントフローを同時に中止する必要がある場合に使用されます。
ctx.exit()との違い:ctx.exit()は現在のイベントフローのみを終了します。ctx.exitAll()は、現在のイベントディスパッチにおいてまだ実行されていない後続のイベントフローも終了します。
型定義
ctx.exitAll() を呼び出すと、内部的に FlowExitAllException がスローされます。これはイベントフローエンジンによってキャッチされ、現在のイベントフローインスタンスと同じイベント配下の後続イベントフローを停止します。呼び出されると、現在の JS コード内の残りのステートメントは実行されません。
ctx.exit() との比較
実行モードの説明
- 順次実行(sequential):同じイベント配下のイベントフローが順番に実行されます。いずれかのイベントフローで
ctx.exitAll()が呼び出されると、後続のイベントフローは実行されません。 - 並列実行(parallel):同じイベント配下のイベントフローが並列に実行されます。あるイベントフローで
ctx.exitAll()を呼び出しても、他の並行実行中のイベントフローは中断されません(それぞれが独立しているため)。
示例
権限チェック失敗時にすべてのイベントフローを終了する
グローバルな事前バリデーション不通過時に終了する
ctx.exit() との使い分け
メッセージを表示してから終了する
注意事項
ctx.exitAll()を呼び出した後、現在の JS 内の後続コードは実行されません。呼び出す前にctx.message、ctx.notification、またはモーダルなどを使用して、ユーザーに理由を説明することをお勧めします。- 業務コード内で
FlowExitAllExceptionをキャッチする必要は通常ありません。イベントフローエンジンに処理を任せてください。 - 後続のイベントフローに影響を与えずに現在のイベントフローのみを停止したい場合は、
ctx.exit()を使用してください。 - 並列モードでは、
ctx.exitAll()は現在のイベントフローのみを終了し、他の並行実行中のイベントフローを中断することはありません。
関連情報
- ctx.exit():現在のイベ ントフローのみを終了
- ctx.message:メッセージ通知
- ctx.modal:確認モーダル

