@@ -371,6 +371,44 @@ function updateOutput(
371
371
const { config, layout, graphs, dependenciesRequest, hooks} = getState ( ) ;
372
372
const { InputGraph} = graphs ;
373
373
374
+ const getThisRequestIndex = ( ) => {
375
+ const postRequestQueue = getState ( ) . requestQueue ;
376
+ const thisRequestIndex = findIndex (
377
+ propEq ( 'uid' , requestUid ) ,
378
+ postRequestQueue
379
+ ) ;
380
+ return thisRequestIndex ;
381
+ } ;
382
+
383
+ const updateRequestQueue = ( rejected , status ) => {
384
+ const postRequestQueue = getState ( ) . requestQueue ;
385
+ const thisRequestIndex = getThisRequestIndex ( ) ;
386
+ if ( thisRequestIndex === - 1 ) {
387
+ // It was already pruned away
388
+ return ;
389
+ }
390
+ const updatedQueue = adjust (
391
+ merge ( __ , {
392
+ status : status ,
393
+ responseTime : Date . now ( ) ,
394
+ rejected,
395
+ } ) ,
396
+ thisRequestIndex ,
397
+ postRequestQueue
398
+ ) ;
399
+ // We don't need to store any requests before this one
400
+ const thisControllerId =
401
+ postRequestQueue [ thisRequestIndex ] . controllerId ;
402
+ const prunedQueue = updatedQueue . filter ( ( queueItem , index ) => {
403
+ return (
404
+ queueItem . controllerId !== thisControllerId ||
405
+ index >= thisRequestIndex
406
+ ) ;
407
+ } ) ;
408
+
409
+ dispatch ( setRequestQueue ( prunedQueue ) ) ;
410
+ } ;
411
+
374
412
/*
375
413
* Construct a payload of the input and state.
376
414
* For example:
@@ -470,44 +508,6 @@ function updateOutput(
470
508
credentials : 'same-origin' ,
471
509
body : JSON . stringify ( payload ) ,
472
510
} ) . then ( function handleResponse ( res ) {
473
- const getThisRequestIndex = ( ) => {
474
- const postRequestQueue = getState ( ) . requestQueue ;
475
- const thisRequestIndex = findIndex (
476
- propEq ( 'uid' , requestUid ) ,
477
- postRequestQueue
478
- ) ;
479
- return thisRequestIndex ;
480
- } ;
481
-
482
- const updateRequestQueue = rejected => {
483
- const postRequestQueue = getState ( ) . requestQueue ;
484
- const thisRequestIndex = getThisRequestIndex ( ) ;
485
- if ( thisRequestIndex === - 1 ) {
486
- // It was already pruned away
487
- return ;
488
- }
489
- const updatedQueue = adjust (
490
- merge ( __ , {
491
- status : res . status ,
492
- responseTime : Date . now ( ) ,
493
- rejected,
494
- } ) ,
495
- thisRequestIndex ,
496
- postRequestQueue
497
- ) ;
498
- // We don't need to store any requests before this one
499
- const thisControllerId =
500
- postRequestQueue [ thisRequestIndex ] . controllerId ;
501
- const prunedQueue = updatedQueue . filter ( ( queueItem , index ) => {
502
- return (
503
- queueItem . controllerId !== thisControllerId ||
504
- index >= thisRequestIndex
505
- ) ;
506
- } ) ;
507
-
508
- dispatch ( setRequestQueue ( prunedQueue ) ) ;
509
- } ;
510
-
511
511
const isRejected = ( ) => {
512
512
const latestRequestIndex = findLastIndex (
513
513
propEq ( 'controllerId' , outputIdAndProp ) ,
@@ -525,7 +525,7 @@ function updateOutput(
525
525
526
526
if ( res . status !== STATUS . OK ) {
527
527
// update the status of this request
528
- updateRequestQueue ( true ) ;
528
+ updateRequestQueue ( true , res . status ) ;
529
529
return ;
530
530
}
531
531
@@ -535,7 +535,7 @@ function updateOutput(
535
535
* If so, ignore this request.
536
536
*/
537
537
if ( isRejected ( ) ) {
538
- updateRequestQueue ( true ) ;
538
+ updateRequestQueue ( true , res . status ) ;
539
539
return ;
540
540
}
541
541
@@ -547,11 +547,11 @@ function updateOutput(
547
547
* get out of order
548
548
*/
549
549
if ( isRejected ( ) ) {
550
- updateRequestQueue ( true ) ;
550
+ updateRequestQueue ( true , res . status ) ;
551
551
return ;
552
552
}
553
553
554
- updateRequestQueue ( false ) ;
554
+ updateRequestQueue ( false , res . status ) ;
555
555
556
556
// Fire custom request_post hook if any
557
557
if ( hooks . request_post !== null ) {
0 commit comments