このドキュメントはAIによって翻訳されました。正確な情報については英語版をご参照ください。
現在のイベントフローの実行を終了し、後続のステップは実行されません。業務条件が満たされない場合、ユーザーによるキャンセル、または回復不能なエラーが発生した場合によく使用されます。
ctx.exit() は、JS が実行可能な以下のコンテキストで一般的に使用されます:
| シーン | 説明 |
|---|---|
| イベントフロー | フォームの送信やボタンクリックなどによってトリガーされるイベントフローにおいて、条件が満たされない場合に後続のステップを中止します。 |
| 連動ルール | フィールド連動やフィルタ連動などで、バリデーションに失敗した場合や実行をスキップする必要がある場合に、現在のイベントフローを終了します。 |
| アクションイベント | カスタムアクション(削除確認、保存前のバリデーションなど)において、ユーザーがキャンセルした場合やバリデーションが通らない場合に終了します。 |
ctx.exitAll()との違い:ctx.exit()は現在のイベントフローのみを終了し、同じイベント内の他のイベントフローには影響しません。ctx.exitAll()は、現在のイベントフローおよび同じイベント内でまだ実行されていない後続のイベントフローを終了します。
ctx.exit() を呼び出すと、内部的に FlowExitException がスローされ、イベントフローエンジンによってキャッチされて現在のイベントフローの実行が停止します。呼び出されると、現在の JS コード内の残りのステートメントは実行されません。
| メソッド | 影響範囲 |
|---|---|
ctx.exit() | 現在のイベントフローのみを終了し、後続のイベントフローには影響しません。 |
ctx.exitAll() | 現在のイベントフローを終了し、かつ同じイベント内で順次実行される後続のイベントフローも中止します。 |
ctx.exit() を呼び出した後、現在の JS 内の後続コードは実行されません。呼び出す前に ctx.message、ctx.notification、またはモーダルを使用してユーザーに理由を説明することをお勧めします。FlowExitException をキャッチする必要はありません。イベントフローエンジンに処理を任せてください。ctx.exitAll() を使用してください。