支持取消安全入口

修复条件分支和并行分支下的并行分支panic
This commit is contained in:
v-me-50
2025-06-24 17:49:45 +08:00
parent 58e4c0ff11
commit 20b0e0c4bd
3 changed files with 19 additions and 2 deletions

View File

@@ -245,7 +245,12 @@ func RunNode(node *WorkflowNode, ctx *ExecutionContext) error {
var wg sync.WaitGroup
errChan := make(chan error, len(node.ConditionNodes))
for _, branch := range node.ConditionNodes {
branch.ChildNode.Config["fromNodeData"] = node.Config["fromNodeData"]
if branch.ChildNode != nil {
if branch.ChildNode.ChildNode == nil {
branch.ChildNode.Config = make(map[string]any)
}
branch.ChildNode.Config["fromNodeData"] = node.Config["fromNodeData"]
}
wg.Add(1)
go func(node *WorkflowNode) {
defer wg.Done()
@@ -271,6 +276,9 @@ func RunNode(node *WorkflowNode, ctx *ExecutionContext) error {
for _, branch := range node.ConditionNodes {
if branch.Config["type"] == string(lastStatus) {
if branch.ChildNode != nil {
if branch.ChildNode.Config == nil {
branch.ChildNode.Config = make(map[string]any)
}
fromNodeData, ok := ctx.GetOutput(node.Config["fromNodeId"].(string))
if !ok {
fromNodeData = nil