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