2016-03-28 10 views
10

Im folgenden Code wird die erste console.log-Nachricht so schnell wie möglich gedruckt. Dann hängt alles einfach (ich bin zunächst davon ausgegangen, dass es darauf warte, dass der Text der Antwort zurückgegeben wird). Der Body der Antwort ist nur etwa 26K, die Wartezeit scheint unbestimmt zu sein, OHNE dass ich das Telefon schüttele und mit dem Debug-Menü interagiere. Sobald ich mit dem Debug-Menü interagiere, verrechnet sich das Versprechen und alles bewegt sich wie erwartet. Meine Interaktionen mit dem Debug-Menü können einfach sein, wie zum Beispiel verstecken Inspektor, Show-Inspektor, nimmt nur etwas, um die Versprechen Auflösung in Gang zu treten und alles ist in Ordnung.Was könnte dieses langsame Fetch im reaktiven nativen verursachen?

fetch(SEARCH_URL, requestBody) 
    .then((response) => {console.log(response); return response.json();}) 
    .then((responseData) => { 
     debugger 
     ... 

Hinweis: Entfernen vom Debugger und Ausführen des Codes zeigt nicht die Langsamkeit (und nicht verbunden ist, an der Debugger die Debugger-Anweisungen ignoriert)

Und ja, habe ich den Computer neu gestartet.

könnte etwas in https://github.com/facebook/react-native/issues/6679

+0

Ich habe das gleiche Problem. Die Verwendung von 'reactive-native' v0.24.1 geschieht nur im Chrome-Debugging. Ich glaube nicht, dass dies mit dem Problem 6679 zu tun hat, auf das Sie verlinken. Ich denke, es hängt mit der Chrome-spezifischen asynchronen Planung oder setTimeout- und fetch/promise-Implementierung zusammen. Beachten Sie, dass beim Debuggen in Chrome das JS Ihrer RN App vollständig im Browser ausgeführt wird. Es sind Shims und Bibliotheken vorhanden, damit sich die beiden Umgebungen gleich verhalten. Ich denke, es gibt ein Problem mit einem dieser Stücke. Das ist vielleicht eine gute Frage, die Sie in der RN-Facebook-Gruppe stellen können. – sstur

+0

@sstur ist richtig, es ist wegen Chrome Debugging. Deaktivieren Sie das Debuggen von Chrom und Sie haben wieder eine gute Leistung. – gre

+0

@gre: Ja, wir können das Chrome-Debugging deaktivieren und erhalten wieder eine gute Leistung. aber das ist total ein Fehler. Es wäre schön, es aufzuspüren und zu sehen, was genau es verursacht, damit eine Reparatur geplant werden kann. Vielleicht wäre ein GH-Problem für RN angemessen. Nicht sicher. – sstur

Antwort

1

gefunden haben, wie Sie sich selbst herausgefunden haben, ist dies ein bekannter Fehler, die should be fixed in react-native v0.31

+1

Es wurde versprochen, in fast jeder Version nach 0,24 behoben werden, also halten Sie nicht die Luft an. – boatcoder

+0

es passiert auf rn39 sowie –

0

Was für mich gearbeitet, die Anrufe innerhalb der Konstruktor einer Komponente reagieren holen bewegt. Sonst lösen sie sich nie auf. Hoffe, das hilft

+1

das könnte eher ein Kommentar als eine Antwort sein –

1

Es ist ein bekannter Fehler, dass Parsing-Antworten schlecht verzögern können, wenn Remote-Debugging aktiviert ist. Die Deaktivierung des Remote-Debugging sollte dies erheblich beschleunigen.

Sie können read the issue für Details und andere Problemumgehungen.

Verwandte Themen