如果服务器的响应在 10 秒后出现,则取消 axios 请求

Posted

技术标签:

【中文标题】如果服务器的响应在 10 秒后出现,则取消 axios 请求【英文标题】:Cancel axios request, if response from server comes after 10 seconds 【发布时间】:2022-01-14 01:28:06 【问题描述】:

我在我的 react-native 应用程序中使用 axios 来进行 api 调用。我需要做的是 取消 api 请求 并在 10 秒后显示出现问题屏幕但没有响应。 让我知道是否有办法做到这一点。

【问题讨论】:

hook axios的错误处理器会不会更正确? ***.com/questions/57382537/… export const CancelToken = axios.CancelToken;让 source = CancelToken.source(); source && source.cancel('操作因新请求而取消。'); 【参考方案1】:

您可以配置超时时间(默认约为 5 秒),也可以使用这个:

用于添加超时:

const instance = axios.create(
  baseURL: 'https://some-domain.com/api/',
  timeout: 10000, // in miliseconds
  headers: 'X-Custom-Header': 'foobar'
);

对于 axios v0.22.0:

const controller = new AbortController();
controller.abort()

对于旧版本:

CancelToken

Check this for more information

【讨论】:

这里面怎么配置超时秒数为10秒?

以上是关于如果服务器的响应在 10 秒后出现,则取消 axios 请求的主要内容,如果未能解决你的问题,请参考以下文章

5 秒后自动为我的应用删除收到的推送通知

Angular 2,轮询 http 请求并等待缓慢的响应

java axis2 调用webservice 怎么捕获超时异常(即超时了让它停下来,不要报错)

如果没有得到响应,如何在 30 秒后停止 ajax 调用? [复制]

AWS Lambda 任务在 6.00 秒后超时

如何使用 TFS 离线工作