首页 > 试题广场 >

讲一下axiosfetch 的差异、二次封装规范与错误重试

[问答题]
讲一下axios/fetch 的差异、二次封装规范与错误重试策略。
一、axios/fetch 核心差异 - 功能:axios 自带拦截、超时、取消,fetch 需手动封装,默认不携 Cookie ​ - 错误:axios 非 2xx 拒执,fetch 仅网络错误拒执(4xx/5xx 需手动判断) ​ - 转换:axios 自动解析 JSON/转请求体,fetch 需手动处理 二、二次封装规范 - 基础配置:统一 baseURL、超时、请求头 ​ - 拦截处理:请求加 Token,响应统一解析/错误提示 ​ - API 分层:按业务拆分请求函数,可选 TypeScript 类型约束 三、错误重试策略 - 触发条件:仅网络错误、5xx 错误(跳过 4xx) ​ - 核心逻辑:计数器控制重试次数(如最多 3 次)+ 延迟退避
发表于 2025-11-03 07:00:07 回复(0)
1. 是否为原生 API 2. 是否会自动解析 JSON 3. 是否会自动 reject 4xx/5xx 等状态码(Fetch 需手动判断 response.ok) 4. 是否支持请求响应拦截器 封装: - axios.create 创建实例,避免污染全局 - 全局配置,baseURL、timeout、headers { content-type } - 请求拦截:添加 token,设置 loading 态 - 响应拦截:解构取数使业务数据更纯粹,根据不同状态码做不同操作(401 返回登录页,403 提示权限不够) 重试策略: - 设置最大重发次数,请求检查 - 状态码为 5xx 时,可从 config 中获得上次请求的参数,才用回避策略(适当延时,防止冲击服务器)重发请求。
发表于 2025-09-15 21:01:53 回复(0)