constructor ({ transformMetadata, enrichErrorMetadata, log, observer } = {}) {
    this._pendingObservers = []
    this._log = log
    this._transformMetadata = transformMetadata || NO_OP_IDENTITY
    this._enrichErrorMetadata = enrichErrorMetadata || NO_OP_IDENTITY
    this._observer = Object.assign(
      {
        onObserversCountChange: NO_OP,
        onError: NO_OP,
        onFailure: NO_OP,
        onErrorApplyTransformation: NO_OP_IDENTITY
      },
      observer
    )
  }
Constructor
@param {Object} param The params
@param {ResponseHandler~MetadataTransformer} transformMetadata Transform metadata when the SUCCESS is received.
@param {Channel} channel The channel used to exchange messages
@param {Logger} log The logger
@param {ResponseHandler~Observer} observer Object which will be notified about errors