From b983dcf1f1e042545e739a70d8606cc1dddcca9e Mon Sep 17 00:00:00 2001 From: Aaron Abbott Date: Tue, 22 Dec 2020 05:24:26 +0000 Subject: [PATCH] fix(@opentelemetry/exporter-collector): remove fulfilled promises correctly --- .../browser/CollectorExporterBrowserBase.ts | 14 +++++++------- .../src/platform/node/CollectorExporterNodeBase.ts | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/opentelemetry-exporter-collector/src/platform/browser/CollectorExporterBrowserBase.ts b/packages/opentelemetry-exporter-collector/src/platform/browser/CollectorExporterBrowserBase.ts index 180ddddf2fa..b8d214786a1 100644 --- a/packages/opentelemetry-exporter-collector/src/platform/browser/CollectorExporterBrowserBase.ts +++ b/packages/opentelemetry-exporter-collector/src/platform/browser/CollectorExporterBrowserBase.ts @@ -68,19 +68,14 @@ export abstract class CollectorExporterBrowserBase< const serviceRequest = this.convert(items); const body = JSON.stringify(serviceRequest); - const promise = new Promise(resolve => { + const promise = new Promise(resolve => { const _onSuccess = (): void => { onSuccess(); - _onFinish(); + resolve(); }; const _onError = (error: collectorTypes.CollectorExporterError): void => { onError(error); - _onFinish(); - }; - const _onFinish = () => { resolve(); - const index = this._sendingPromises.indexOf(promise); - this._sendingPromises.splice(index, 1); }; if (this._useXHR) { @@ -97,5 +92,10 @@ export abstract class CollectorExporterBrowserBase< } }); this._sendingPromises.push(promise); + const _onFinish = () => { + const index = this._sendingPromises.indexOf(promise); + this._sendingPromises.splice(index, 1); + }; + promise.then(_onFinish); } } diff --git a/packages/opentelemetry-exporter-collector/src/platform/node/CollectorExporterNodeBase.ts b/packages/opentelemetry-exporter-collector/src/platform/node/CollectorExporterNodeBase.ts index 2f3d2977de4..36072bad213 100644 --- a/packages/opentelemetry-exporter-collector/src/platform/node/CollectorExporterNodeBase.ts +++ b/packages/opentelemetry-exporter-collector/src/platform/node/CollectorExporterNodeBase.ts @@ -40,7 +40,7 @@ export abstract class CollectorExporterNodeBase< httpAgentOptions: http.AgentOptions | https.AgentOptions = {}; constructor(config: CollectorExporterNodeConfigBase = {}) { super(config); - if ((config as any).metadata) { + if ('metadata' in config) { this.logger.warn('Metadata cannot be set when using http'); } this.headers =