概述 `AbortSignal.timeout(ms)` 创建在指定时间后自动触发的中断信号;`AbortSignal.any([...])` 将多个信号组合,任意一个触发即中断。适用于请求超时与用户取消等情境。 示例 ```js const ctrl = new AbortController() const signal = AbortSignal.any([ctrl.signal, AbortSignal.timeout(5000)]) try { const resp = await fetch('/api', { signal }) } catch (e) { /* 处理超时或取消 */ } // 用户取消 ctrl.abort() ``` 工程建议 - 时序与重试:合理设置超时并在必要时重试;避免过短导致失败率上升。 - 组合场景:结合页面卸载、用户交互取消与后台策略;统一中断通道。 - 兼容:特性检测并回退到手动计时器与 `ctrl.abort()`;记录原因。 参考与验证 - MDN AbortController/AbortSignal 文档:https://developer.mozilla.org/docs/Web/API/AbortController - web.dev 请求中断与超时指南:https://web.dev/articles/abort
点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
网站二维码

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部
/* 跳过导航链接 (无障碍) */ .skip-link { position: absolute; top: -100px; left: 15px; z-index: 99999; padding: 8px 16px; background: #007bff; color: #fff; font-size: 14px; border-radius: 0 0 4px 4px; text-decoration: none; transition: top 0.2s; } .skip-link:focus { top: 0; outline: 3px solid #0056b3; }