【发布时间】:2018-08-16 03:19:12
【问题描述】:
public observableA = (id: string): Observable<Array<any>>=>{
}
public observableB = (id: string): Observable<Array<myClass>>=>{
observableA(metroId).map((x)=>{
return new myClass(
x.FacilityName,
x.ID)
};
}
export class myClass{
ID: string;
Name: string;
constructor(id: string, name: string){this.ID=id;this.Name=name;}
}
ObservableA 返回一个对象数组,我正在编写一个函数 ObservableB 以使用返回的 ObservableA 数组返回一个 myClass 数组。
当我调试这段代码时, 我可以看到 map 参数中的“x”是来自 ObservableA 的整个数组,而不是数组的对象元素。
因此无法访问属性。
可能出了什么问题?
更新: 有没有办法将 Array 的单个 Observable 变成 Observable 的数组,以便我可以处理元素?
【问题讨论】:
-
这不是您所期望的吗?
Observable.map映射到 流中 的每个项目,而不是流恰好包含的数组中。您可能会将其与Array.map混淆。 -
@jonrsharpe 哦,我认为它类似于 lodash 的地图
-
从外观上看,这也基本上是
Array.map。参见例如stackoverflow.com/q/42482705/3001761. -
编辑后的问题还是很奇怪。我怀疑你是否想要一系列可观察的。我认为您还不了解 observables 的概念,建议您先阅读更多相关信息。
标签: angular typescript rxjs observable