默认分支 组件
默认分支组件(SwitchDefault)是多路分支的历史兜底节点,用于放置「匹配都未命中」时需要执行的组件。
概述
默认分支是多路分支(Switch)的兜底路径。它本身没有业务配置项,只需把需要执行的组件连到默认分支下游。
历史节点
默认分支的服务端管理器 SwitchDefaultComponentManager 已标记为 [Obsolete("don't use in new case")],且接口画布的侧边栏(getMetaInterfaceSidebarItemConfig)已不再提供该节点:当前组件面板的「流程控制」分组只有 FlowCondition、Switch、SwitchCase。该节点仅为兼容历史流程而保留。
配置项
默认分支只有通用属性(名称、描述、排序),无额外配置项。也不提供「输出到最终结果」开关。
执行流程
使用场景
- 兼容早期版本中「兜底处理」的历史画布
- 迁移时作为待替换节点识别
下一步
属性明细
以下内容面向技术实现与 AI 检索,说明默认分支组件的节点元数据。
节点元数据
默认分支组件由 FlowCmpType.SwitchDefault 标识:
| 属性名 | 类型 | 含义 | 取值/存储值 |
|---|---|---|---|
type | string | 组件类型 | 固定为 "SwitchDefault" |
order | string | 同级排序 | 例:"4" |
元数据存储示例
{
"ID": "default1",
"type": "SwitchDefault",
"order": "4"
}
服务端执行逻辑
默认分支由 SwitchDefaultComponentManager(继承 InterfaceComponentManagerBase)实现。其逻辑极为简单:不参与脚本结果匹配,直接继续执行下游。
元数据均为字符串
节点元数据以 Dictionary<string, string> 存储,type、order 都是字符串;服务端通过 meta.SafeGet("键名") 读取。
执行时机与场景
| 时机 | 说明 |
|---|---|
| 保存/发布校验 | _VerifyAsync 不做额外校验,直接 VerifyNextAsync |
被 Switch 调度 | Switch 的 ExecuteNextAsync 会执行全部下游,SwitchDefault 若为下游即被调度 |
输入参数(meta 键)
默认分支没有业务输入参数,meta 仅含通用键:
| meta 键 | 类型 | 含义 | 取值/存储值 |
|---|---|---|---|
type | string | 组件类型 | "SwitchDefault" |
order | string(数字) | 同级排序 | 如 "4" |
ID | string | 节点标识 | 画布生成 |
执行步骤
_VerifyAsync:return await VerifyNextAsync(context);(仅透传下游校验)。_ExecuteAsync:return await ExecuteNextAsync(context);(无条件推进下游,不读取CmpResult、不做任何比较)。
分支路由规则
- 与匹配分支不同,
SwitchDefault没有等值判断:被调度时总会继续执行其下游。 - 因此它并不在服务端实现「仅当所有匹配分支都未命中才执行」的语义;真正的分支命中与否完全由
SwitchCase的等值比较决定。 - 类的
[Obsolete]标记说明它不再用于新场景,新建流程请使用Switch+SwitchCase组合表达路由。
输出与上下文
| 上下文属性 | 默认分支的处理 |
|---|---|
CmpResult / Result | 不写入、不读取 |
| 下游推进 | 无条件调用 ExecuteNextAsync |
异常与校验
| 场景 | 说明 |
|---|---|
| 校验阶段 | _VerifyAsync 无专属校验,仅透传下游 |
| 执行阶段 | _ExecuteAsync 无专属异常处理,错误由下游节点抛出 |