afterEvent()
afterEvent()
メソッドは、ワークフロー内で特定のイベントが発生するまで実行を一時停止し、その後に処理を続行するサスペンションポイントを作成します。
構文
workflow.afterEvent(eventName: string): Workflow
パラメータ
パラメータ | 型 | 説明 |
---|---|---|
eventName | string | 待機するイベントの名前。ワークフローのevents 設定で定義されているイベントと一致する必要があります。 |
戻り値
メソッドチェーン用のワークフローインスタンスを返します。
説明
afterEvent()
メソッドは、特定の名前付きイベントを待機するワークフローに自動的な一時停止ポイントを作成するために使用されます。これは基本的に、ワークフローが一時停止して外部イベントの発生を待つべき地点を宣言的に定義する方法です。
afterEvent()
を呼び出すと、Mastraは以下のことを行います:
- ID
__eventName_event
を持つ特別なステップを作成します - このステップは自動的にワークフローの実行を一時停止します
- ワークフローは
resumeWithEvent()
を介して指定されたイベントがトリガーされるまで一時停止状態を維持します - イベントが発生すると、実行は
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();