generateVideo 轮询超时无法取消在飞行中状态请求
说明
" 实验性-基因视频 " 检查 " poll.timeout " 在民意调查之间,女士,但不适用于飞行中的`现状 ' 请求。
由于“超时:50”,等待其中止信号的状态请求在200毫秒后仍未解决,其信号尚未中止。 如果该请求在截止日期后返回完成的结果,SDK将它视为成功的一代。
预期:投票截止日期停止等待,取消待决地位申请. 这涉及到本地身份申请,而不是取消远程视频生成工作。
参考文献描述`超时' 女士作为最大等待完成。 在“执行Start Status Flow”中,在“等待重试(( ()) + model.dostatus (.))”之前检查已过期时间,但请求只收到呼叫者的信号。 状态请求完成后,没有截止信号或超时检查.
- 复制
不需要 API 密钥或网络呼叫 。 安装“[email protected]”和“[email protected]”,但作为“repro.mts”例外,并与节点24运行“node repro.mts”:
导入 { 实验 基因Video 以生成Video} 从'ai' 导入; 从“ai/test”导入{MockVideo ModelV4};
Const caller = 新的终止控制器( ); const into = promise. with Resolvers () ; 让状态 Signal:中止 Signal QQ未定义; 让状态 = “待发”; Const 模型 = 新的MockVideo ModelV4({ doGenerate: 未定义, doStart: async () ({) 操作 : “ 合成操作” , 警告 : [], 响应 : {时间戳:新日期 (),模式Id:'synthetic-video',标题: {}, ~ , , ( ) , 状态 :( { 中止符号 } ) { { 状态符号 = 中止符号; 返回新承诺( ( resolve, 拒绝) {{ 如果拒绝(放弃), 其它终止 Signal ? add Event listener ('abort', () QQ 拒绝( abortSignal. reason), {一次: true }); 已输入. resolve ();
- ; {\fn华文楷体\fs16\1cHE0E0E0}
- ; 第一代 = 生成视频({ 模型,即时:“合成即时”。 中止信号: caller. signal, 民意调查:{间隔女士:0,超时女士:50}, }),然后((()) {{状态='已解决';},(){状态='已拒绝';}); 等待输入。 保证; 等待新的承诺( 解决 QQ 设置 Timeout( 解决 200 ) ); control.log({状态,状态请求已取消:状态Signal?.aborted }); // 期望在50ms的最后期限后:被拒绝,属实. / 二百分后实际:待发,假发. caller.abort( 新错误 ('合成清理' ) ); 等待生成;
截止日期后的实际产出:
页:1
{状态:"待决",状态请求:假}期望:QQ状态:"被拒绝",状态请求:真QQ状态.
模型尊重取消:最后的`caller.abort ()'立即发布请求。 缺失的部分是将投票截止日期用于这一信号。
在22.20.0和24.13.0号节点上,地方回归检查重复了停滞状态和后期成功情况。 4个控制通过:立即完成,在最后期限前完成,重复等待 . . . . . . .
内容来源: vercel/ai