在以下代码中,第一个console.log消息几乎立即打印出来。然后,一切都会暂停(我最初认为它正在等待返回的响应正文)。响应的正文只有大约26K,等待的时间似乎是无限的,除非我摇动手机并与调试菜单进行交互。只要我与调试菜单交互,承诺就会解决,并且所有事情都按照预期进行。我与调试菜单的交互可以很简单,就像隐藏检查器,显示检查器一样,只需将某个承诺分辨率转换为装备状态即可,一切正常。什么可能导致这种缓慢取回原生?
fetch(SEARCH_URL, requestBody)
.then((response) => {console.log(response); return response.json();})
.then((responseData) => {
debugger
...
注: 从调试器断开和运行代码没有表现出缓慢(而不是连接到调试器忽略调试语句)
是的,我已经重新启动计算机。
可能已经发现,在https://github.com/facebook/react-native/issues/6679
我遇到同样的问题。使用'react-native' v0.24.1,它只发生在Chrome调试中。我不认为这与您链接到的问题6679有关。我认为它与特定于Chrome的异步调度或setTimeout以及读取/承诺实现有关。请记住,在Chrome中进行调试时,您的RN应用程序的JS完全在浏览器中运行。有垫片和图书馆,以使两个环境表现相同。我认为这其中有一件是有问题的。这可能是一个很好的问题,在RN Facebook组织上提出。 – sstur
@sstur是对的,这是因为Chrome调试。禁用chrome调试,并且您再次具有良好的性能。 – gre
@gre:是的,我们可以禁用Chrome调试并重新获得良好的性能。但这完全是一个错误。最好跟踪下来,看看究竟是什么造成的,因此可以计划修复。也许GH问题适用于RN。不确定。 – sstur