Skip to content

Commit c61c687

Browse files
committed
fix(fetch transport): clear timeout in finally block
1 parent b722a83 commit c61c687

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

experimental/packages/otlp-exporter-base/src/transport/fetch-transport.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,10 @@ class FetchTransport implements IExporterTransport {
3131
constructor(private _parameters: FetchTransportParameters) {}
3232

3333
async send(data: Uint8Array, timeoutMillis: number): Promise<ExportResponse> {
34+
let timeout: ReturnType<typeof setTimeout> | undefined;
3435
try {
3536
const abortController = new AbortController();
36-
const timeout = timeoutMillis
37+
timeout = timeoutMillis
3738
? setTimeout(() => abortController.abort(), timeoutMillis)
3839
: undefined;
3940

@@ -52,7 +53,6 @@ class FetchTransport implements IExporterTransport {
5253
: 'cors'
5354
: 'no-cors',
5455
});
55-
clearTimeout(timeout);
5656

5757
if (response.status >= 200 && response.status <= 299) {
5858
diag.debug('response success');
@@ -77,6 +77,8 @@ class FetchTransport implements IExporterTransport {
7777
status: 'failure',
7878
error: new Error('Fetch request errored', { cause: error }),
7979
};
80+
} finally {
81+
clearTimeout(timeout);
8082
}
8183
}
8284

0 commit comments

Comments
 (0)