X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fworker%2FWorkerSet.ts;h=c45e6a617147edce428800d8a777178eea9b53ea;hb=16c46962f43a692c996b1c89a94dc572fea52d63;hp=1e3000cc2f719722fe6ddded93cae1ca4acc3e45;hpb=1d7a504ba27c38e3f8617c80cf53aed85da580af;p=e-mobility-charging-stations-simulator.git diff --git a/src/worker/WorkerSet.ts b/src/worker/WorkerSet.ts index 1e3000cc..c45e6a61 100644 --- a/src/worker/WorkerSet.ts +++ b/src/worker/WorkerSet.ts @@ -157,19 +157,32 @@ export class WorkerSet extends Worke if (this.promiseResponseMap.has(uuid)) { // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const { resolve, reject, workerSetElement } = this.promiseResponseMap.get(uuid)! - if (event === WorkerMessageEvents.addedWorkerElement) { - this.emitter?.emit(WorkerSetEvents.elementAdded, this.info) - workerSetElement.numberOfWorkerElements++ - resolve(data) - } else if (event === WorkerMessageEvents.workerElementError) { - this.emitter?.emit(WorkerSetEvents.elementError, data) - reject(data) + switch (event) { + case WorkerMessageEvents.addedWorkerElement: + this.emitter?.emit(WorkerSetEvents.elementAdded, this.info) + ++workerSetElement.numberOfWorkerElements + resolve(data) + break + case WorkerMessageEvents.workerElementError: + this.emitter?.emit(WorkerSetEvents.elementError, data) + reject(data) + break + default: + reject( + new Error( + `Unknown worker message event: '${event}' received with data: '${JSON.stringify( + data, + undefined, + 2 + )}'` + ) + ) } - this.promiseResponseMap.delete(message.uuid) + this.promiseResponseMap.delete(uuid) } }) worker.on('error', this.workerOptions.poolOptions?.errorHandler ?? EMPTY_FUNCTION) - worker.on('error', error => { + worker.once('error', error => { this.emitter?.emit(WorkerSetEvents.error, error) if ( this.workerOptions.poolOptions?.restartWorkerOnError === true &&