---

title: AbortSignal timeout 与 any:中止组合与超时治理

keywords:

  • AbortSignal.timeout
  • AbortSignal.any
  • 超时
  • 中止组合
  • 稳定性

description: 使用 AbortSignal.timeoutAbortSignal.any 为请求与任务提供易用的超时与组合中止机制,统一治理策略与资源释放。

categories:

  • 文章资讯
  • 技术教程

---

概述

AbortSignal.timeout(ms) 生成在指定毫秒后自动中止的信号;AbortSignal.any([...]) 合并多个信号,当任意一个触发时中止。

用法/示例

// 超时中止
await fetch('/api', { signal: AbortSignal.timeout(3000) })

// 组合中止:用户取消或超时均可中止
const controller = new AbortController()
const signal = AbortSignal.any([controller.signal, AbortSignal.timeout(5000)])
try { await fetch('/task', { signal }) } finally { /* 清理 */ }

工程建议

  • 在统一封装中提供默认超时与可覆盖策略,避免悬挂请求。
  • 为组合中止添加错误处理与回滚;记录中止原因用于观测。
  • 对不支持环境回退到 AbortController 与手动计时。

参考与验证

  • MDN:AbortSignal — https://developer.mozilla.org/docs/Web/API/AbortSignal
  • Chrome Docs:AbortSignal.timeout — https://developer.chrome.com/docs/web-platform/abort-signal

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部