Este método es similar a renderToNodeStream
, pero está pensado para entornos que soporten Web Streams como Deno
.
Un ejemplo de uso sería el siguiente:
const controller = new AbortController()
const { signal } = controller
let didError = false
try {
const stream = await renderToReadableStream(
<html>
<body>Success</body>
</html>,
{
signal,
onError(error) {
didError = true
console.error(error)
}
}
)
// Si quieres enviar todo el HTML en vez de hacer streaming, puedes usar esta línea
// Es útil para crawlers o generación estática:
// await stream.allReady
return new Response(stream, {
status: didError ? 500 : 200,
headers: {'Content-Type': 'text/html'},
})
} catch (error) {
return new Response(
'<!doctype html><p>Loading...</p><script src="clientrender.js"></script>',
{
status: 500,
headers: {'Content-Type': 'text/html'},
}
)
}