title: http.get().pipe() - unable to get the actual response object from server for logging
body: <p>Use case - make a http get call to the server. Log the actual response from the server. Convert the response object (convert epoch date fields to javascript Date). Then return the converted object.</p>
  
  <p>Code snippet -</p>
  
  <pre><code>/** GET users from the server */
    getUsers(): Observable&lt;IUser[]&gt; {
      this.logger.log(`GET on ${this.baseUrl}`);
      return this.http.get&lt;IUser[]&gt;(this.baseUrl).pipe(
        tap(users =&gt; this.logger.log(`fetched users - `, users)),
        map(users =&gt; {
          return users.map(user =&gt; this.convertResponse(user));
        }),
        catchError(handleError.bind({ logger: this.logger }))
      );
    }
  </code></pre>
  
  <p>Currently I am using tap() to log the response. Then convert the response object using map(). But the log message displayed is of the converted object and not the original response from the server. </p>
  
  <p>How do I capture the response object before converting it?</p>
  
  <p>Edit -</p>
  
  <pre><code>  private convertResponse(user: IUser): IUser {
      user.createdDate = new Date(user.createdDate);
      user.modifiedDate = new Date(user.modifiedDate);
      return user;
    }
  </code></pre>