Vercel News
Workflow SDK now supports inflight cancellation
8.5内容质量
TL;DR · AI 摘要
Workflow SDK 5 beta 现支持 AbortController 和 AbortSignal API,实现跨工作流和步骤的中止操作。
核心要点
- Workflow SDK 5 beta 支持 AbortController 和 AbortSignal API。
- AbortSignal 可跨工作流和步骤传递,实现中止操作。
- 中止操作可用于超时、取消剩余请求、多步骤流水线等场景。
结构提纲
按章节快速跳转。
- §引言
Workflow SDK 5 beta 现支持 AbortController 和 AbortSignal API,实现跨工作流和步骤的中止操作。
在工作流中创建 AbortController,并将其信号传递给一个或多个步骤,以取消正在进行的操作。
- ›代码示例
示例代码展示了如何使用 AbortController 和 AbortSignal 实现可取消的工作流。
AbortSignal 可跨暂停和确定性重放保持持久,即使在不同的函数调用中也能看到中止信号。
中止操作可用于超时、取消剩余请求、多步骤流水线等场景。
思维导图
用一张图看清主题之间的关系。
查看大纲文本(无障碍 / 无 JS 友好)
- Workflow SDK 5 beta 支持中止操作
- AbortController 和 AbortSignal API
- 跨工作流和步骤传递信号
- 支持中止操作的场景
- 中止操作的特性
- 信号持久性
- 协作式中止
金句 / Highlights
值得收藏与分享的关键句。
The Workflow SDK 5 beta now supports the standard AbortController and AbortSignal APIs across workflow and step boundaries.
That signal stays durable across suspensions and deterministic replay.
Use it to stop a slow step when a durable timeout wins a race, cancel the remaining requests after the first successful response, thread one signal through a multi-step pipeline, or cancel parallel wo
#Workflow SDK#AbortSignal#Vercel#前端
打开原文Workflow SDK 现在支持进行中的取消操作 - Vercel
1 分钟阅读
复制链接
2026 年 6 月 16 日
Workflow SDK 5 beta 版现在支持在工作流和步骤边界之间使用标准的 AbortController 和 AbortSignal API。
在工作流中创建一个控制器,将其信号传递给一个或多个步骤,并使用与 fetch 已经使用的相同 API 取消正在进行的操作。
code
1
import
{
sleep
}
from
"workflow"
;
2
3
export
async
function
cancellableWorkflow
(
)
{
4
"use workflow"
;
5
6
const
controller
=
new
AbortController
(
)
;
7
8
const
result
=
await
Promise
.
race
(
[
9
fetchReport
(
controller
.
signal
)
,
10
sleep
(
"30s"
)
.
then
(
(
)
=>
null
)
,
11
]
)
;
12
13
if
(
result
===
null
)
{
14
controller
.
abort
(
)
;
15
return
{
status
:
"timed-out"
}
;
16
}
17
18
return
result
;
19
}
20
21
async
function
fetchReport
(
signal
:
AbortSignal
)
{
22
"use step"
;
23
24
const
response
=
await
fetch
(
"https://api.example.com/report"
,
{
25
signal
,
26
}
)
;
27
28
return
response
.
json
(
)
;
29
}将信号传递给步骤并取消正在进行的操作
该信号在暂停和确定性重播过程中保持持久。当一个步骤正在运行时,它会看到取消操作,即使它在另一个函数调用中。取消操作也是协作的;步骤必须检查信号或将其传递给支持 AbortSignal 的 API。
使用它来在持久超时赢得比赛时停止一个缓慢的步骤,取消在第一个成功响应之后的剩余请求,将一个信号通过多步骤管道,或在外部条件变化时取消并行工作。
使用 workflow@beta 尝试一下,并阅读取消操作文档以了解更多。