@@ -470,7 +470,7 @@ export class Snapshot extends EventEmitter {
470470 // and doesn't invoke any other subsequent code hence it is paramount
471471 // to invoke span.end() before returning results to the callback.
472472 span . end ( ) ;
473- await callback ! ( err , resp ) ;
473+ callback ! ( err , resp ) ;
474474 }
475475 ) ;
476476 } ) ;
@@ -784,7 +784,9 @@ export class Snapshot extends EventEmitter {
784784 if ( err ) {
785785 setSpanError ( span , err ) ;
786786 }
787- span . end ( ) ;
787+ if ( span . isRecording ( ) ) {
788+ span . end ( ) ;
789+ }
788790 } ) ;
789791 }
790792
@@ -1316,8 +1318,8 @@ export class Snapshot extends EventEmitter {
13161318 } catch ( e ) {
13171319 const errorStream = new PassThrough ( ) ;
13181320 setSpanErrorAndException ( span , e as Error ) ;
1319- setImmediate ( ( ) => errorStream . destroy ( e as Error ) ) ;
13201321 span . end ( ) ;
1322+ setImmediate ( ( ) => errorStream . destroy ( e as Error ) ) ;
13211323 return errorStream ;
13221324 }
13231325 }
@@ -2135,19 +2137,22 @@ export class Transaction extends Dml {
21352137 } else if ( ! this . _useInRunner ) {
21362138 reqOpts . singleUseTransaction = this . _options ;
21372139 } else {
2138- try {
2139- await this . begin ( ) ;
2140- const resp = await this . commit ( options ) ;
2141- span . end ( ) ;
2142- await callback (
2143- null ,
2144- resp as spannerClient . spanner . v1 . ICommitResponse
2145- ) ;
2146- } catch ( err ) {
2147- setSpanErrorAndException ( span , err as Error ) ;
2148- span . end ( ) ;
2149- await callback ( err as ServiceError , null ) ;
2150- }
2140+ this . begin ( ) . then (
2141+ ( ) => {
2142+ this . commit ( options , ( err , resp ) => {
2143+ if ( err ) {
2144+ setSpanError ( span , err ) ;
2145+ }
2146+ span . end ( ) ;
2147+ callback ( err , resp ) ;
2148+ } ) ;
2149+ } ,
2150+ err => {
2151+ setSpanError ( span , err ) ;
2152+ span . end ( ) ;
2153+ callback ( err , null ) ;
2154+ }
2155+ ) ;
21512156 return ;
21522157 }
21532158
@@ -2185,10 +2190,7 @@ export class Transaction extends Dml {
21852190 gaxOpts : gaxOpts ,
21862191 headers : headers ,
21872192 } ,
2188- async (
2189- err : null | Error ,
2190- resp : spannerClient . spanner . v1 . ICommitResponse
2191- ) => {
2193+ ( err : null | Error , resp : spannerClient . spanner . v1 . ICommitResponse ) => {
21922194 this . end ( ) ;
21932195
21942196 if ( err ) {
0 commit comments