在 Cloudflare 仪表板中查看解析后的 Workflow 代码的可视化表示。
该图表展示顺序步骤与并行步骤、条件分支、循环以及嵌套逻辑。你可以折叠循环和条件分支以概览 Workflow,也可以展开查看更详细的视图。
Workflow 图表目前对所有 TypeScript 和 JavaScript Workers 处于 Beta 阶段。在 Cloudflare 仪表板 ↗ 中查看你的 Workflows 及其图表。
图表包含以下节点类型:
| 节点类型 | 描述 |
|---|---|
StepSleep |
暂停 Workflow 执行指定时长。 |
StepDo |
表示包装工作单元的具名、可重试步骤。 |
StepWaitForEvent |
暂停执行直至收到外部事件。 |
StepSleepUntil |
暂停 Workflow 执行直至指定日期和时间。 |
LoopNode |
表示重复执行逻辑块的循环结构(for、while 等)。 |
ParallelNode |
将并发执行的步骤分组,例如 Promise.all() 内的步骤。 |
TryNode |
表示 Workflow 内处理错误的 try...catch 块。 |
BlockNode |
将一系列步骤分组为逻辑块以便展示。 |
IfNode |
表示基于 if/else 表达式的条件分支。 |
SwitchNode |
表示在多个 case 间路由执行的 switch 语句。 |
StartNode |
标记 Workflow 或函数定义的入口点。 |
FunctionCall |
表示 Workflow 代码中对具名函数的调用。 |
FunctionDef |
表示 Workflow 内使用的函数定义。 |
BreakNode |
表示提前退出循环的 break 语句。 |
每个节点都有 starts 和 resolves 字段来跟踪执行顺序。这些索引表示 Promise 何时开始执行以及何时结束,相对于第一个开始但未立即结束的 Promise。这对应于图表中的垂直位置(即所有 starts: 1 的步骤将并排显示)。
解析时,未 await 的 Promise 或 Promise.all() 调用会被分配一个存入 starts 字段的条目编号。当遇到该 Promise 的 await 时,条目编号递增并作为退出编号保存到 resolves 字段。这使图表能够确定哪些 Promise 并发运行,以及每个 Promise 相对于其他 Promise 的完成时间。
如果在声明时 await 步骤,starts 和 resolves 将为 undefined,Workflow 将按运行时看到的步骤顺序执行。