发布时间:2026/8/20 23:38:11
fetch:超时、重试与 AbortController fetch是浏览器里发 HTTP 请求的标准方法。默认它不会因「等太久」自动失败也不会帮你重试。线上接口偶发超时、网关 503、限流 429若页面一直转圈或疯狂连打体验与服务都会受伤。下面把三件事拆开超时怎么取消、什么错误值得重试、怎么和 AbortController 配合。一、先说一个具体麻烦你写了constresawaitfetch(/api/report)constdataawaitres.json()上面代码中没有超时。服务端卡住时Promise 可能一直 pending按钮转个不停。用户重复点击又发出第二、第三次请求。需要两样能力1到点取消2区分「可重试」与「不该重试」避免把 400 校验错误也重打三遍二、AbortController取消的总闸AbortController提供一个signal。把它传给fetch调用abort()即可取消。constacnewAbortController()fetch(/api/report,{signal:ac.signal})// 某处ac.abort()上面代码中取消后fetch会以 AbortError 一类错误拒绝具体名称因环境略有差异。同一signal也可传给多个关联请求一并取消。超时只是「到时间自动 abort」的一种用法。三、最小超时封装思路A创建 controllerBsetTimeout到点 abortCfinally里清定时器。exportasyncfunctionfetchWithTimeout(url,options{},ms8000){constacnewAbortController()consttimersetTimeout(()ac.abort(),ms)try{returnawaitfetch(url,{...options,signal:ac.signal})}finally{clearTimeout(timer)}}上面代码中若调用方自己也传了signal生产代码还应把外部 abort 与超时 abort 合并例如AbortSignal.any或手动监听转发。入门先掌握「超时 定时 abort」。用户离开页面或关闭弹窗时同样应 abort避免无用请求占着连接与回调。四、什么错误才重试不是所有失败都该重试。通常更值得重试1网络断开、DNS 临时失败2408/429/502/503/5043你明确标成幂等的 GET / 某些可安全重放的写操作需业务保证通常不要盲着重试1400/401/403/404/422改请求或鉴权不是再打一次2非幂等 POST 已可能成功但响应丢失——重试可能造成重复下单需幂等键五、退避重试的最小形状「立刻再打」容易把服务打崩。常见做法是指数退避1s、2s、4s……并加一点抖动。asyncfunctionfetchWithRetry(url,options,{retries2,baseMs400}{}){letlastErrfor(leti0;iretries;i){try{constresawaitfetchWithTimeout(url,options,8000)if(res.ok)returnresif(![429,502,503,504].includes(res.status)||iretries)returnres}catch(err){lastErrerrif(iretries)throwerr}constwaitbaseMs*2**iMath.random()*100awaitnewPromise((r)setTimeout(r,wait))}throwlastErr}上面代码中逻辑是示意成功或不可重试状态码就返回可重试则等待后再来。真实项目还应1尊重Retry-After2把超时 abort 与「主动取消」区分开——用户取消不应再重试3对写操作加幂等键或禁止自动重试六、和 UI 状态机对齐请求层做好了还要和界面约定1进行中禁用提交或显示 loading2取消abort并忽略随后的过期响应3失败按状态码给文案401 去登录429 提示稍后再试竞态常见坑先发的慢请求后返回覆盖了新数据。用递增的 request id或每次新请求 abort 旧请求可以避免。七、常见误区1只await fetch不看res.okHTTP 404 不会进 catch需要自己判断。2所有方法统一重试三次非幂等写操作很危险。3超时时间设得极短又极多重试等于自己制造雪崩。4catch 到 AbortError 还弹「网络错误」用户主动取消应静默处理。5忘记清 timer组件卸载后仍 abort或 timer 泄漏。八、小结fetch本身不管超时与重试。用 AbortController 做取消用定时 abort 做超时用状态码与幂等性决定是否退避重试。三件事分开设计再组合混在一个「万能 request」里最容易变成黑盒。完

相关新闻

2026/8/20 23:33:11

电动汽车超快充技术解析:从800V高压平台到电池热管理设计

1. 从“里程焦虑”到“补能焦虑”:电动汽车的下一道坎作为一名在汽车行业摸爬滚打了十几年的老工程师,我亲眼见证了电动汽车从“政策玩具”到“市场主流”的惊人转变。早期,大家最关心的是“这车能跑多远?”,也就是我们…

2026/8/20 23:33:11

深信服防火墙小参数导致SuiDao无法建立与不通问题

某客户切换深信服防火墙,型号和接口数量和型号差不多,版本一模一样,切换后ipsec无附件建立成功1.防火墙vpn状态显示两端参数不一样2.再次检查替换前后防火墙参数一模一样。个人心理认为配置上没有可修改得地址。对端设备为阿里云公有云ipsec&…

2026/8/20 23:33:11

PrivScope:为混合AI智能体系统设计任务作用域信息泄露控制

1. 项目概述:当AI代理需要“守口如瓶”时最近在折腾一个混合智能体系统,遇到了一个挺有意思的难题:系统里有好几个AI代理,有的负责分析用户数据,有的负责调用外部API,还有的负责生成最终报告。它们之间需要…

2026/8/21 0:43:16

芯片烧录对环境的要求有哪些?

在芯片烧录过程中,环境因素对烧录质量和成功率有着至关重要的影响。为了确保芯片烧录的高效和可靠,需要特别关注以下几个方面:防静电(ESD)防护、温湿度控制、洁净度要求、电源稳定性和电磁干扰(EMI&#xf…

2026/8/21 0:43:16

怎么写好综述?3个框架直接套用

同样是综述,有些能直接以独立论文投刊见刊,有些只能放在学位论文里当背景,二者的差距往往和参考文献的多少没关系,核心区别在于有没有梳理出完整清晰的领域发展脉络。不少科研人啃完上百篇文献,写出来的还是文献流水账…

2026/8/21 0:43:15

半天写出高质量综述!这套流程帮科研人省大钱

眼看开题报告、课题中期检查就要到截止日期,多少科研人熬掉了大把头发,还卡在文献综述这儿反复内耗:手动挨个数据库扒文献,前前后后就要三四天,啃完几十篇文章还是理不清自己研究领域的来龙去脉,写综述的时…

2026/8/20 10:17:13

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/20 20:11:18

工业传感器与变送器详解:序章 从物理世界到工业数据

序章 从物理世界到工业数据 ——重新认识工业传感器与变送器 工业自动化系统正变得日益复杂。今天的工业现场早已不是简单的控制回路,而是由多层技术共同构成的立体体系:PLC、DCS、SCADA、MES、工业互联网、边缘计算与人工智能。控制系统可以执行复杂算法,工业网络可以实现…

2026/8/21 0:03:13

Linux命令-uucico(UUCP传输程序)

Linux命令-uucico(UUCP传输程序) 🔰简介UUCP 体系简介 📖语法⚙️选项配置文件 💡示例示例 1:基本传输操作示例 2:主模式与从模式示例 3:调试与故障排查示例 4:UUCP 配置…

2026/8/21 0:03:13

Linux命令-uupick(UUCP文件接收工具)

Linux命令-uupick(UUCP文件接收工具)🔰简介uupick 在 UUCP 传输链中的位置📖语法⚙️选项交互命令💡示例示例 1:基本接收操作示例 2:仅处理来自特定系统的文件示例 3:完整 UUCP 文件…

2026/8/20 8:35:23

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/20 9:15:29

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/21 0:31:27

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…