概述

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 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部