File tree 2 files changed +29
-14
lines changed
2 files changed +29
-14
lines changed Original file line number Diff line number Diff line change @@ -406,20 +406,24 @@ class Pool extends EventEmitter {
406
406
407
407
client . once ( 'error' , onError )
408
408
this . log ( 'dispatching query' )
409
- client . query ( text , values , ( err , res ) => {
410
- this . log ( 'query dispatched' )
411
- client . removeListener ( 'error' , onError )
412
- if ( clientReleased ) {
413
- return
414
- }
415
- clientReleased = true
416
- client . release ( err )
417
- if ( err ) {
418
- return cb ( err )
419
- } else {
420
- return cb ( undefined , res )
421
- }
422
- } )
409
+ try {
410
+ client . query ( text , values , ( err , res ) => {
411
+ this . log ( 'query dispatched' )
412
+ client . removeListener ( 'error' , onError )
413
+ if ( clientReleased ) {
414
+ return
415
+ }
416
+ clientReleased = true
417
+ client . release ( err )
418
+ if ( err ) {
419
+ return cb ( err )
420
+ } else {
421
+ return cb ( undefined , res )
422
+ }
423
+ } )
424
+ } catch ( err ) {
425
+ return cb ( err )
426
+ }
423
427
} )
424
428
return response . result
425
429
}
Original file line number Diff line number Diff line change @@ -37,6 +37,17 @@ describe('pool error handling', function () {
37
37
} )
38
38
} )
39
39
40
+ it ( 'Catches errors in client.query' , async function ( ) {
41
+ await expect ( ( new Pool ( ) ) . query ( null ) ) . to . throwError ( )
42
+ await expect ( async ( ) => {
43
+ try {
44
+ await ( new Pool ( ) ) . query ( null )
45
+ } catch ( e ) {
46
+ console . log ( e )
47
+ }
48
+ } ) . not . to . throwError ( )
49
+ } )
50
+
40
51
describe ( 'calling release more than once' , ( ) => {
41
52
it (
42
53
'should throw each time' ,
You can’t perform that action at this time.
0 commit comments