【发布时间】:2018-12-04 18:29:39
【问题描述】:
用例 - 对服务器进行 http get 调用。记录来自服务器的实际响应。转换响应对象(将纪元日期字段转换为 javascript 日期)。然后返回转换后的对象。
代码 sn-p -
/** GET users from the server */
getUsers(): Observable<IUser[]> {
this.logger.log(`GET on ${this.baseUrl}`);
return this.http.get<IUser[]>(this.baseUrl).pipe(
tap(users => this.logger.log(`fetched users - `, users)),
map(users => {
return users.map(user => this.convertResponse(user));
}),
catchError(handleError.bind({ logger: this.logger }))
);
}
目前我正在使用 tap() 来记录响应。然后使用 map() 转换响应对象。但是显示的日志消息是转换后的对象,而不是来自服务器的原始响应。
如何在转换之前捕获响应对象?
编辑 -
private convertResponse(user: IUser): IUser {
user.createdDate = new Date(user.createdDate);
user.modifiedDate = new Date(user.modifiedDate);
return user;
}
【问题讨论】:
-
请发
convertResponse方法。 -
添加了
convertResponse方法