fetch-event-respond-with-readable-stream-chunk-worker.js (1131B)
1 'use strict'; 2 3 self.addEventListener('fetch', event => { 4 if (!event.request.url.match(/body-stream$/)) 5 return; 6 7 var counter = 0; 8 const encoder = new TextEncoder(); 9 const stream = new ReadableStream({ pull: controller => { 10 switch (++counter) { 11 case 1: 12 controller.enqueue(encoder.encode('')); 13 return; 14 case 2: 15 controller.enqueue(encoder.encode('chunk #1')); 16 return; 17 case 3: 18 controller.enqueue(encoder.encode(' ')); 19 return; 20 case 4: 21 controller.enqueue(encoder.encode('chunk #2')); 22 return; 23 case 5: 24 controller.enqueue(encoder.encode(' ')); 25 return; 26 case 6: 27 controller.enqueue(encoder.encode('chunk #3')); 28 return; 29 case 7: 30 controller.enqueue(encoder.encode(' ')); 31 return; 32 case 8: 33 controller.enqueue(encoder.encode('chunk #4')); 34 return; 35 default: 36 controller.close(); 37 } 38 }}); 39 event.respondWith(new Response(stream)); 40 });