假设我们有这项服务
@Injectable()
export class CarService {
constructor (private http: Http) {}
getCars() {
return this.http.get('someurl')
.map(res => <Car[]> res.json())
.catch(this.handleError);
}
}
我们在另一个组件中订阅了这个。如果汽车看起来像这样:
class Car{
Color:string;
Timestamp:any; //this comes as a string in JSON but I want it to be of type Date object
}
我们想要一些逻辑,即将 date:string 更改为日期类型,应该在哪里完成?
在服务中?如何? 在类(class)本身? .map() 会命中 Car 类的构造函数吗?
最佳答案
我会将这个过程放在:
在利用数组的
map
方法的map
运算符中return this.http.get('someurl') .map(res => <Car[]> res.json()) .map(data => { data.map((d) => { var date = (...) return new Car(color, date); }); return data; }) .catch(this.handleError);
在
Car
类的构造函数中return this.http.get('someurl') .map(res => <Car[]> res.json()) .map(data => { data.map((d) => { return new Car(color, timestampAsString); }); return data; }) .catch(this.handleError);
关于javascript - 在 Observables 中操作数据的模式是什么(Angular2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36184813/