@@ -20,29 +20,37 @@ <h1>Fizz Example</h1>
2020 < script src ="../../build/node_modules/react-dom/umd/react-dom-server.browser.development.js "> </ script >
2121 < script src ="https://unpkg.com/babel-standalone@6/babel.js "> </ script >
2222 < script type ="text/babel ">
23- let controller = new AbortController ( ) ;
24- let stream = ReactDOMServer . renderToReadableStream (
25- < html >
26- < body > Success</ body >
27- </ html > ,
28- {
29- signal : controller . signal ,
23+ async function render ( ) {
24+ let controller = new AbortController ( ) ;
25+ let response ;
26+ try {
27+ let stream = await ReactDOMServer . renderToReadableStream (
28+ < html >
29+ < body > Success</ body >
30+ </ html > ,
31+ {
32+ signal : controller . signal ,
33+ }
34+ ) ;
35+ response = new Response ( stream , {
36+ headers : { 'Content-Type' : 'text/html' } ,
37+ } ) ;
38+ } catch ( x ) {
39+ response = new Response ( '<!doctype><p>Error</p>' , {
40+ status : 500 ,
41+ headers : { 'Content-Type' : 'text/html' } ,
42+ } ) ;
3043 }
31- ) ;
32- let response = new Response ( stream , {
33- headers : { 'Content-Type' : 'text/html' } ,
34- } ) ;
35- display ( response ) ;
3644
37- async function display ( responseToDisplay ) {
38- let blob = await responseToDisplay . blob ( ) ;
45+ let blob = await response . blob ( ) ;
3946 let url = URL . createObjectURL ( blob ) ;
4047 let iframe = document . createElement ( 'iframe' ) ;
4148 iframe . src = url ;
4249 let container = document . getElementById ( 'container' ) ;
4350 container . innerHTML = '' ;
4451 container . appendChild ( iframe ) ;
4552 }
53+ render ( ) ;
4654 </ script >
4755 </ body >
4856</ html >
0 commit comments