Only delete the request directly from the cache when needed at response
authorJérôme Benoit <jerome.benoit@sap.com>
Tue, 20 Sep 2022 09:29:09 +0000 (11:29 +0200)
committerJérôme Benoit <jerome.benoit@sap.com>
Tue, 20 Sep 2022 09:29:09 +0000 (11:29 +0200)
handling error

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
src/charging-station/ChargingStation.ts

index 93042f20ae6db111bae72b6383da070c358a3c30..da71a8191e7f6af7631f7f63a4b442099eaf328b 100644 (file)
@@ -1575,11 +1575,12 @@ export default class ChargingStation {
         [MessageType.CALL_RESULT_MESSAGE, MessageType.CALL_ERROR_MESSAGE].includes(messageType) ===
         true
       ) {
-        // Always remove the request from the cache in case of error at response handling
-        this.requests.delete(messageId);
-        // Always reject the deferred promise in case of error at response handling (rejecting an already fulfilled promise is a no-op)
         if (errorCallback) {
+          // Reject the deferred promise in case of error at response handling (rejecting an already fulfilled promise is a no-op)
           errorCallback(error as OCPPError, false);
+        } else {
+          // Remove the request from the cache in case of error at response handling
+          this.requests.delete(messageId);
         }
       }
     }