android - Axios 超时在有限的热点上无法按预期工作
问题描述
我正在将 axios 用于我的一个 react native 项目。这是我的配置和执行代码:
const config = {
method: 'GET',
headers: {
'Content-Type': 'application/json',
Accept: 'application/json',
},
timeout: 30000
};
var response = await instance.get(route, config);
这是我的测试场景。我有两部手机,A 和 B。从手机 AI 打开我的 wifi 并创建一个热点。从手机 BI 连接到该热点。现在我打开手机A上的wifi,它有热点。对于电话 B,网络可用,但显示为有限。
现在,如果我使用上述 axios 配置放置 HTTP,对于 Android 设备,它在 30 秒后永远不会超时。但对于 iOS 设备,它按预期工作。为什么?
解决方案
它发生在我身上,我通过执行以下操作手动解决了它
let source = axios.CancelToken.source();
setTimeout(() => {
source.cancel();
// Timeout Logic
}, 30000);
const config = {
method: 'GET',
headers: {
'Content-Type': 'application/json',
Accept: 'application/json',
},
timeout: 30000,
//Add this
cancelToken: source.token,
};
推荐阅读
- android - 在没有数据绑定的情况下实现 MVVM
- python - UDP视频流延迟 - OPENCV python
- html - 相互重叠时使图像在点击时出现在前面
- arrays - 在 gnuplot 中声明两个数组并相对于另一个绘制它们
- mongodb-.net-driver - 如何从 mongodb 获取特定的嵌入式数组并使用 mongodb c# 驱动程序将其附加到新文档中
- javascript - 我需要简单的逻辑帮助来添加从 ts 文件中的模板获取的数字
- csv - 如何将 csv 文件读入数组,并用另一个 csv 文件中的条目进行比较和替换?
- java - 如何将 a 到 z 转换为二进制
- android - 如何避免firestore中的索引?
- c++ - igraph (c) 访问邻接表的每个元素