Skip to Content

afterEvent()

afterEvent() メソッドは、ワークフロー内で特定のイベントが発生するまで実行を一時停止し、その後に処理を続行するサスペンションポイントを作成します。

構文

workflow.afterEvent(eventName: string): Workflow

パラメータ

パラメータ説明
eventNamestring待機するイベントの名前。ワークフローのevents設定で定義されているイベントと一致する必要があります。

戻り値

メソッドチェーン用のワークフローインスタンスを返します。

説明

afterEvent()メソッドは、特定の名前付きイベントを待機するワークフローに自動的な一時停止ポイントを作成するために使用されます。これは基本的に、ワークフローが一時停止して外部イベントの発生を待つべき地点を宣言的に定義する方法です。

afterEvent()を呼び出すと、Mastraは以下のことを行います:

  1. ID __eventName_eventを持つ特別なステップを作成します
  2. このステップは自動的にワークフローの実行を一時停止します
  3. ワークフローはresumeWithEvent()を介して指定されたイベントがトリガーされるまで一時停止状態を維持します
  4. イベントが発生すると、実行はafterEvent()呼び出しに続くステップから継続します

このメソッドはMastraのイベント駆動型ワークフロー機能の一部であり、手動で一時停止ロジックを実装することなく、外部システムやユーザーインタラクションと連携するワークフローを作成することができます。

使用上の注意

  • afterEvent()で指定されたイベントは、ワークフローのevents設定でスキーマと共に定義されている必要があります
  • 作成される特殊なステップには予測可能なID形式があります:__eventName_event(例:__approvalReceived_event
  • afterEvent()の後に続くステップは、context.inputData.resumedEventを通じてイベントデータにアクセスできます
  • イベントデータは、resumeWithEvent()が呼び出されたときに、そのイベントに定義されたスキーマに対して検証されます

基本的な使い方

// Define workflow with events const workflow = new Workflow({ name: "approval-workflow", events: { approval: { schema: z.object({ approved: z.boolean(), approverName: z.string(), }), }, }, }); // Build workflow with event suspension point workflow .step(submitRequest) .afterEvent("approval") // Workflow suspends here .step(processApproval) // This step runs after the event occurs .commit();

関連