2016-03-28 12 views
10

Nel seguente codice, il primo messaggio console.log viene stampato praticamente all'istante. Quindi tutto si blocca (inizialmente ho pensato che fosse in attesa che il corpo della risposta fosse restituito). Il corpo della risposta è solo di circa 26K, l'attesa del tempo sembra essere indefinita A MENO, scuoto il telefono e interagisco con il menu di debug. Non appena interagisco con il menu di debug, la promessa si risolve e tutto procede come previsto. Le mie interazioni con il menu di debug possono essere semplici, come hide inspector, show inspector, basta prendere qualcosa per dare inizio alla risoluzione delle promesse e tutto va bene.Quale potrebbe essere la causa di questo lento recupero in risposta nativo?

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

Nota: disconnessione dal debugger e l'esecuzione del codice non presenta la lentezza (e non essendo collegato al debugger ignora le dichiarazioni del debugger)

E sì, ho riavviato il computer.

potrebbe aver trovato qualcosa in https://github.com/facebook/react-native/issues/6679

+0

Ho lo stesso problema. Usando 'react-native' v0.24.1 e succede solo in Chrome Debugging. Non credo che questo sia legato al numero 6679 al quale ti colleghi. Penso che sia correlato alla pianificazione asincrona o all'implementazione setTimeout e fetch/promise specifica per Chrome. Tieni presente che durante il debug in Chrome, il JS della tua app RN viene completamente eseguito nel browser. Esistono shim e librerie per far sì che i due ambienti si comportino allo stesso modo. Penso che ci sia un problema con uno di quei pezzi. Questa potrebbe essere una buona domanda da chiedere al gruppo Facebook di RN. – sstur

+0

@ststur ha ragione, è a causa del debug di Chrome. Disabilita il debug del chrome e hai di nuovo un buon risultato. – gre

+0

@gre: sì, possiamo disabilitare il debug di Chrome e ottenere di nuovo un buon risultato. ma questo è totalmente un bug. Sarebbe bello rintracciarlo e vedere cosa lo causa esattamente, quindi è possibile pianificare una correzione. Forse il problema del GH per RN sarebbe appropriato. Non sono sicuro. – sstur

risposta

1

Come avete trovato voi stessi, questo è un bug noto che should be fixed in react-native v0.31

+1

È stato promesso che verrà risolto in quasi tutte le versioni dopo lo 0,24, quindi non trattenere il respiro. – boatcoder

+0

sta accadendo anche su rn39 –

0

Quello che ha funzionato per me si sta muovendo le chiamate fetch all'interno del costruttore di un componente di reagire. Altrimenti non si risolveranno mai. Spero che questo aiuti

+1

questo potrebbe essere un commento piuttosto che una risposta –

1

È un bug noto che l'analisi delle risposte può essere ritardata quando il debug remoto è abilitato. Disabilitare il debug remoto dovrebbe accelerare molto.

È possibile read the issue per dettagli e altre soluzioni.

Problemi correlati