You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现30秒未收到响应时向控制台输出错误?

Axios请求超时处理:实现原理与修改方案

实现原理

  • Axios内置了超时控制机制,通过timeout参数可以指定请求的最大等待时长(单位为毫秒)。当请求发起后,若在设定时长内未收到服务器响应,Axios会主动终止该请求,并抛出一个错误码为ECONNABORTED的异常。
  • 我们可以通过catch方法捕获这个超时异常,从而针对性地输出对应的错误提示。

修改方法

直接修改原有代码,添加超时配置并针对性处理超时错误:

const req = await axios.post(`http://316.132.61.31:2000`, {}, {
  timeout: 30000 // 设置30秒超时,单位为毫秒
})
.catch(err => {
  // 区分超时错误与其他请求错误
  if (err.code === 'ECONNABORTED') {
    console.log('请求超时:30秒内未收到响应');
  } else {
    // 处理其他类型的请求错误
    console.log('请求出错:', err);
  }
});
  • 若请求需要传递请求体数据,把数据放在axios.post的第二个参数位置,第三个参数放超时配置;如果没有请求体,第二个参数可以传空对象{},或者直接将配置对象作为第二个参数传入。
  • 通过err.code === 'ECONNABORTED'判断是否为超时错误,避免把其他类型的请求错误(比如网络断开、接口404等)误判为超时。

内容的提问来源于stack exchange,提问作者user20431123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 15:35:38