Permit to run code in async scope in the OCPP stack
[e-mobility-charging-stations-simulator.git] / src / charging-station / ocpp / 1.6 / OCPP16IncomingRequestService.ts
index f5779ab2952bbf3eb3c660d79a7882539aa5a687..52751b4bac994ddfc9e2bc0f68746093b7c2bb55 100644 (file)
@@ -378,10 +378,14 @@ export default class OCPP16IncomingRequestService extends OCPPIncomingRequestSer
     chargingStation: ChargingStation,
     commandPayload: ResetRequest
   ): DefaultResponse {
-    // eslint-disable-next-line @typescript-eslint/no-misused-promises
-    setImmediate(async (): Promise<void> => {
-      await chargingStation.reset((commandPayload.type + 'Reset') as OCPP16StopTransactionReason);
-    });
+    this.asyncResource.runInAsyncScope(
+      chargingStation.reset.bind(chargingStation) as (
+        this: ChargingStation,
+        ...args: any[]
+      ) => void,
+      chargingStation,
+      (commandPayload.type + 'Reset') as OCPP16StopTransactionReason
+    );
     logger.info(
       `${chargingStation.logPrefix()} ${
         commandPayload.type