File tree 1 file changed +24
-3
lines changed 1 file changed +24
-3
lines changed Original file line number Diff line number Diff line change @@ -505,16 +505,37 @@ where
505
505
cmd. write_packed_pipeline ( & mut self . buf ) ;
506
506
self . con . write_all ( & self . buf ) . await ?;
507
507
508
+ let mut first_err = None ;
509
+
508
510
for _ in 0 ..offset {
509
- self . read_response ( ) . await ?;
511
+ let response = self . read_response ( ) . await ;
512
+ if let Err ( err) = response {
513
+ if first_err. is_none ( ) {
514
+ first_err = Some ( err) ;
515
+ }
516
+ }
510
517
}
511
518
512
519
let mut rv = Vec :: with_capacity ( count) ;
513
520
for _ in 0 ..count {
514
- rv. push ( self . read_response ( ) . await ?) ;
521
+ let response = self . read_response ( ) . await ;
522
+ match response {
523
+ Ok ( item) => {
524
+ rv. push ( item) ;
525
+ }
526
+ Err ( err) => {
527
+ if first_err. is_none ( ) {
528
+ first_err = Some ( err) ;
529
+ }
530
+ }
531
+ }
515
532
}
516
533
517
- Ok ( rv)
534
+ if let Some ( err) = first_err {
535
+ Err ( err)
536
+ } else {
537
+ Ok ( rv)
538
+ }
518
539
} )
519
540
. boxed ( )
520
541
}
You can’t perform that action at this time.
0 commit comments