diff --git a/integration/grpc-web/example.ts b/integration/grpc-web/example.ts index c08474516..2c33dc068 100644 --- a/integration/grpc-web/example.ts +++ b/integration/grpc-web/example.ts @@ -992,7 +992,7 @@ export class GrpcWebImpl { : metadata || this.options.metadata; return new Observable((observer) => { const upStream = () => { - grpc.invoke(methodDesc, { + const client = grpc.invoke(methodDesc, { host: this.host, request, transport: this.options.streamingTransport || this.options.transport, @@ -1009,6 +1009,7 @@ export class GrpcWebImpl { } }, }); + observer.add(() => client.close()); }; upStream(); }).pipe(share()); diff --git a/src/generate-grpc-web.ts b/src/generate-grpc-web.ts index a9ae0ba8c..4909f2fac 100644 --- a/src/generate-grpc-web.ts +++ b/src/generate-grpc-web.ts @@ -300,7 +300,7 @@ function createInvokeMethod() { : metadata || this.options.metadata; return new Observable(observer => { const upStream = (() => { - ${grpc}.invoke(methodDesc, { + const client = ${grpc}.invoke(methodDesc, { host: this.host, request, transport: this.options.streamingTransport || this.options.transport, @@ -317,6 +317,7 @@ function createInvokeMethod() { } }, }); + observer.add(() => client.close()); }); upStream(); }).pipe(${share}());