Skip to content

Commit 81fb7a6

Browse files
committed
fix(@opentelemetry/exporter-collector): remove fulfilled promises correctly
1 parent 9a67045 commit 81fb7a6

File tree

5 files changed

+24
-28
lines changed

5 files changed

+24
-28
lines changed

packages/opentelemetry-exporter-collector-grpc/src/CollectorExporterNodeBase.ts

+5-6
Original file line numberDiff line numberDiff line change
@@ -58,22 +58,21 @@ export abstract class CollectorExporterNodeBase<
5858
const promise = new Promise<void>(resolve => {
5959
const _onSuccess = (): void => {
6060
onSuccess();
61-
_onFinish();
61+
resolve();
6262
};
6363
const _onError = (error: collectorTypes.CollectorExporterError): void => {
6464
onError(error);
65-
_onFinish();
66-
};
67-
const _onFinish = () => {
6865
resolve();
69-
const index = this._sendingPromises.indexOf(promise);
70-
this._sendingPromises.splice(index, 1);
7166
};
7267

7368
this._send(this, objects, _onSuccess, _onError);
7469
});
7570

7671
this._sendingPromises.push(promise);
72+
promise.then(() => {
73+
const index = this._sendingPromises.indexOf(promise);
74+
this._sendingPromises.splice(index, 1);
75+
});
7776
}
7877

7978
onInit(config: CollectorExporterConfigNode): void {

packages/opentelemetry-exporter-collector-proto/src/CollectorExporterNodeBase.ts

+5-7
Original file line numberDiff line numberDiff line change
@@ -39,22 +39,20 @@ export abstract class CollectorExporterNodeBase<
3939
const promise = new Promise<void>(resolve => {
4040
const _onSuccess = (): void => {
4141
onSuccess();
42-
_onFinish();
42+
resolve();
4343
};
4444
const _onError = (error: collectorTypes.CollectorExporterError): void => {
4545
onError(error);
46-
_onFinish();
47-
};
48-
const _onFinish = () => {
4946
resolve();
50-
const index = this._sendingPromises.indexOf(promise);
51-
this._sendingPromises.splice(index, 1);
5247
};
5348

5449
this._send(this, objects, _onSuccess, _onError);
5550
});
56-
5751
this._sendingPromises.push(promise);
52+
promise.then(() => {
53+
const index = this._sendingPromises.indexOf(promise);
54+
this._sendingPromises.splice(index, 1);
55+
});
5856
}
5957

6058
onInit(config: CollectorExporterNodeConfigBase): void {

packages/opentelemetry-exporter-collector/src/platform/browser/CollectorExporterBrowserBase.ts

+5-6
Original file line numberDiff line numberDiff line change
@@ -72,16 +72,11 @@ export abstract class CollectorExporterBrowserBase<
7272
const promise = new Promise<void>(resolve => {
7373
const _onSuccess = (): void => {
7474
onSuccess();
75-
_onFinish();
75+
resolve();
7676
};
7777
const _onError = (error: collectorTypes.CollectorExporterError): void => {
7878
onError(error);
79-
_onFinish();
80-
};
81-
const _onFinish = () => {
8279
resolve();
83-
const index = this._sendingPromises.indexOf(promise);
84-
this._sendingPromises.splice(index, 1);
8580
};
8681

8782
if (this._useXHR) {
@@ -91,5 +86,9 @@ export abstract class CollectorExporterBrowserBase<
9186
}
9287
});
9388
this._sendingPromises.push(promise);
89+
promise.then(() => {
90+
const index = this._sendingPromises.indexOf(promise);
91+
this._sendingPromises.splice(index, 1);
92+
});
9493
}
9594
}

packages/opentelemetry-exporter-collector/src/platform/node/CollectorExporterNodeBase.ts

+5-7
Original file line numberDiff line numberDiff line change
@@ -65,16 +65,11 @@ export abstract class CollectorExporterNodeBase<
6565
const promise = new Promise<void>(resolve => {
6666
const _onSuccess = (): void => {
6767
onSuccess();
68-
_onFinish();
68+
resolve();
6969
};
7070
const _onError = (error: collectorTypes.CollectorExporterError): void => {
7171
onError(error);
72-
_onFinish();
73-
};
74-
const _onFinish = () => {
7572
resolve();
76-
const index = this._sendingPromises.indexOf(promise);
77-
this._sendingPromises.splice(index, 1);
7873
};
7974
sendWithHttp(
8075
this,
@@ -84,8 +79,11 @@ export abstract class CollectorExporterNodeBase<
8479
_onError
8580
);
8681
});
87-
8882
this._sendingPromises.push(promise);
83+
promise.then(() => {
84+
const index = this._sendingPromises.indexOf(promise);
85+
this._sendingPromises.splice(index, 1);
86+
});
8987
}
9088

9189
onShutdown(): void {}

packages/opentelemetry-exporter-zipkin/src/zipkin.ts

+4-2
Original file line numberDiff line numberDiff line change
@@ -76,11 +76,13 @@ export class ZipkinExporter implements SpanExporter {
7676
this._sendSpans(spans, this._serviceName!, result => {
7777
resolve();
7878
resultCallback(result);
79-
const index = this._sendingPromises.indexOf(promise);
80-
this._sendingPromises.splice(index, 1);
8179
});
8280
});
8381
this._sendingPromises.push(promise);
82+
promise.then(() => {
83+
const index = this._sendingPromises.indexOf(promise);
84+
this._sendingPromises.splice(index, 1);
85+
});
8486
}
8587

8688
/**

0 commit comments

Comments
 (0)