@@ -279,15 +279,12 @@ async function driverCall_(
279
279
// ===============================================
280
280
281
281
let is_stream = false ;
282
- let got_headers = false ;
283
282
let signal_stream_update = null ;
284
283
let lastLength = 0 ;
285
284
let response_complete = false ;
286
285
const parts_received = [ ] ;
287
286
xhr . onreadystatechange = ( ) => {
288
- if ( got_headers ) return ;
289
- got_headers = true ;
290
- if ( xhr . readyState >= 2 ) {
287
+ if ( xhr . readyState === 2 ) {
291
288
if ( xhr . getResponseHeader ( "Content-Type" ) !==
292
289
'application/x-ndjson'
293
290
) return ;
@@ -311,6 +308,12 @@ async function driverCall_(
311
308
312
309
return resolve_func ( Stream ( ) ) ;
313
310
}
311
+ if ( xhr . readyState === 4 ) {
312
+ response_complete = true ;
313
+ if ( is_stream ) {
314
+ signal_stream_update ?. ( ) ;
315
+ }
316
+ }
314
317
} ;
315
318
316
319
xhr . onprogress = function ( ) {
@@ -323,19 +326,13 @@ async function driverCall_(
323
326
signal_stream_update ( ) ;
324
327
} ;
325
328
326
- xhr . addEventListener ( 'load' , ( ) => {
327
- response_complete = true ;
328
- } ) ;
329
-
330
329
// ========================
331
330
// === END OF STREAMING ===
332
331
// ========================
333
332
334
333
// load: success or error
335
334
xhr . addEventListener ( 'load' , async function ( response ) {
336
- response_complete = true ;
337
335
if ( is_stream ) {
338
- signal_stream_update ?. ( ) ;
339
336
return ;
340
337
}
341
338
const resp = await parseResponse ( response . target ) ;
0 commit comments