Workflow.if()
実験的
.if()
メソッドは、ワークフロー内で条件分岐を作成し、指定された条件が真である場合にのみステップを実行できるようにします。これにより、前のステップの結果に基づいて動的なワークフローパスが可能になります。
使用法
workflow
.step(startStep)
.if(async ({ context }) => {
const value = context.getStepResult<{ value: number }>("start")?.value;
return value < 10; // If true, execute the "if" branch
})
.then(ifBranchStep)
.else()
.then(elseBranchStep)
.commit();
パラメーター
condition:
Function | ReferenceCondition
'if' ブランチを実行するかどうかを決定する関数または参照条件
条件タイプ
関数条件
ブール値を返す関数を使用できます:
workflow
.step(startStep)
.if(async ({ context }) => {
const result = context.getStepResult<{ status: string }>("start");
return result?.status === "success"; // ステータスが "success" の場合に "if" ブランチを実行
})
.then(successStep)
.else()
.then(failureStep);
参照条件
比較演算子を使用した参照ベースの条件を使用できます:
workflow
.step(startStep)
.if({
ref: { step: startStep, path: "value" },
query: { $lt: 10 }, // 値が10未満の場合に "if" ブランチを実行
})
.then(ifBranchStep)
.else()
.then(elseBranchStep);
戻り値
workflow:
Workflow
メソッドチェーンのためのワークフローインスタンス
エラーハンドリング
if
メソッドは、前のステップが定義されている必要があります。前のステップなしで使用しようとすると、エラーが発生します:
try {
// これはエラーをスローします
workflow
.if(async ({ context }) => true)
.then(someStep)
.commit();
} catch (error) {
console.error(error); // "条件には実行されるステップが必要です"
}