我正在运行一个react原生应用程序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()的性能下降,但我的问题恰恰相反:当我没有打开远程调试时,它会吃掉我的机器,并在解决之前搅拌半个小时。
我的版本是:-反应16.3.1-React Native:0.55.4-节点:9.1.0
这里有人知道吗?
除了上面发布的代码,还有很多console.log条目吗?有时iOS可能会陷入困境。