diff --git a/packages/react-native/Libraries/Core/Devtools/loadBundleFromServer.js b/packages/react-native/Libraries/Core/Devtools/loadBundleFromServer.js index 222320b22bd..f8387cd1861 100644 --- a/packages/react-native/Libraries/Core/Devtools/loadBundleFromServer.js +++ b/packages/react-native/Libraries/Core/Devtools/loadBundleFromServer.js @@ -29,6 +29,7 @@ function asyncRequest( let dataListener; let completeListener; let responseListener; + let incrementalDataListener; return new Promise<{body: string, headers: {[string]: string}}>( (resolve, reject) => { dataListener = Networking.addListener( @@ -39,6 +40,18 @@ function asyncRequest( } }, ); + incrementalDataListener = Networking.addListener( + 'didReceiveNetworkIncrementalData', + ([requestId, data]) => { + if (requestId === id) { + if (responseText != null) { + responseText += data; + } else { + responseText = data; + } + } + }, + ); responseListener = Networking.addListener( 'didReceiveNetworkResponse', ([requestId, status, responseHeaders]) => { @@ -67,7 +80,7 @@ function asyncRequest( {}, '', 'text', - false, + true, 0, requestId => { id = requestId; @@ -76,9 +89,10 @@ function asyncRequest( ); }, ).finally(() => { - dataListener && dataListener.remove(); - completeListener && completeListener.remove(); - responseListener && responseListener.remove(); + dataListener?.remove(); + completeListener?.remove(); + responseListener?.remove(); + incrementalDataListener?.remove(); }); } @@ -91,7 +105,6 @@ function buildUrlForBundle(bundlePathAndQuery: string) { module.exports = function (bundlePathAndQuery: string): Promise { const requestUrl = buildUrlForBundle(bundlePathAndQuery); - let loadPromise = cachedPromisesByUrl.get(requestUrl); if (loadPromise) {