2016-03-28 51 views
10

在以下代碼中,第一個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

+0

我遇到同樣的問題。使用'react-native' v0.24.1,它只發生在Chrome調試中。我不認爲這與您鏈接到的問題6679有關。我認爲它與特定於Chrome的異步調度或setTimeout以及讀取/承諾實現有關。請記住,在Chrome中進行調試時,您的RN應用程序的JS完全在瀏覽器中運行。有墊片和圖書館,以使兩個環境表現相同。我認爲這其中有一件是有問題的。這可能是一個很好的問題,在RN Facebook組織上提出。 – sstur

+0

@sstur是對的,這是因爲Chrome調試。禁用chrome調試,並且您再次具有良好的性能。 – gre

+0

@gre:是的,我們可以禁用Chrome調試並重新獲得良好的性能。但這完全是一個錯誤。最好跟蹤下來,看看究竟是什麼造成的,因此可以計劃修復。也許GH問題適用於RN。不確定。 – sstur

回答

1

東西當你已經找到了自己,這是一個已知的bug,它should be fixed in react-native v0.31

+1

它已被承諾在0.24之後的每個版本中修復,所以不要屏住呼吸。 – boatcoder

+0

它也發生在rn39以及 –

0

什麼工作對我來說是一個移動組件反應的構造函數中調用獲取。否則他們永遠不會解決希望這可以幫助

+1

這可能是一個評論比答案 –

1

這是一個已知的錯誤,當啓用遠程調試時,解析響應可能會嚴重滯後。禁用遠程調試應該會加速很多。

有關詳細信息和其他解決方法,您可以read the issue

相關問題