diff --git a/packages/next/server/render.tsx b/packages/next/server/render.tsx index 76ab3cf7a5af..cd7d6186c98f 100644 --- a/packages/next/server/render.tsx +++ b/packages/next/server/render.tsx @@ -1763,23 +1763,6 @@ async function renderToStream({ const closeTag = '' const suffixUnclosed = suffix ? suffix.split(closeTag)[0] : null - const doResolve = (renderStream: ReadableStream) => { - // React will call our callbacks synchronously, so we need to - // defer to a microtask to ensure `stream` is set. - const transforms: Array> = [ - createBufferedTransformStream(), - flushEffectHandler ? createFlushEffectStream(flushEffectHandler) : null, - suffixUnclosed != null ? createPrefixStream(suffixUnclosed) : null, - dataStream ? createInlineDataStream(dataStream) : null, - suffixUnclosed != null ? createSuffixStream(closeTag) : null, - ].filter(Boolean) as any - - return transforms.reduce( - (readable, transform) => pipeThrough(readable, transform), - renderStream - ) - } - let completeCallback: (value?: unknown) => void const allComplete = new Promise((resolveError, rejectError) => { completeCallback = execOnce((err: unknown) => { @@ -1806,7 +1789,18 @@ async function renderToStream({ await allComplete } - return doResolve(renderStream) + const transforms: Array> = [ + createBufferedTransformStream(), + flushEffectHandler ? createFlushEffectStream(flushEffectHandler) : null, + suffixUnclosed != null ? createPrefixStream(suffixUnclosed) : null, + dataStream ? createInlineDataStream(dataStream) : null, + suffixUnclosed != null ? createSuffixStream(closeTag) : null, + ].filter(Boolean) as any + + return transforms.reduce( + (readable, transform) => pipeThrough(readable, transform), + renderStream + ) } function encodeText(input: string) {