ios - 在 iOS 模拟器中 React-Native Fetch + 解析 JSON 抓取,但在远程调试中即时
问题描述
我正在运行一个反应本机应用程序,v56。在根级组件的主构造函数中,我对本地服务器进行 fetch() 调用,如下所示:
getStatus = () => {
let url = this.getEnvUrl();
return fetch(url)
.then(res => (_.get(res, 'status', 500) == 200)
? res : Promise.reject('Fetch had a non-200 response.'))
.then(res => res.json() )
.catch(err => Promise.reject(err));
}
当我在 iOS 模拟器中运行它时, res.json() 在解析之前会挂起 10-15 分钟(或更长时间)。当我的机器开始消耗我的 Macbook 资源时,它开始“起飞”。
相反,如果我打开远程调试,它几乎会立即运行 response.json()。如果我改为运行 response.text() ,它也是立即的。
我想知道这是否是模拟器的问题,通过启用远程调试,JS实际上是在浏览器中运行的,因此效率更高,或者资源更多?我的 API 的 json 是相对嵌套的,但我在 PRODUCTION 上运行它没有问题,无论是 Chrome,还是在我的 iPhone 上的 Safari 中运行,请求更大。
当我环顾四周时,我看到了启用远程调试导致 .json() 性能下降的旧问题,但我的问题恰恰相反:当我没有远程调试时,它会占用我的机器,并且因为什么而流失感觉好像还有半小时才解决。
我的版本是: - React 16.3.1 - React Native:0.55.4 - 节点:9.1.0
有人知道吗?
解决方案
除了上面发布的代码之外,还有很多 console.log 条目吗?有时 iOS 可能会被它们困住。
推荐阅读
- css - 自定义 CSS 未在 .Net Core React App 中应用
- javascript - 如何停止背景弹出视频
- c++ - 如何修改对结构成员变量的指针引用
- spring-boot - Roo_Service_Impl.aj 中的 Spring Roo 错误
- regex - 匹配特定日期的正则表达式
- c - 运营商搜索难题
- javascript - 如何使用 JavaScript 保存带有 ANSI 编码的 .bat 文件?
- r - R - 使用 if 或 else 循环制作附加列的数据框
- java - 如何计算通过android中的日期选择器选择的两个日期之间的天数
- php - 检查是否匹配 url 参数是否正确并显示数据