sfd*_*oob 4 observable rxjs typescript angular
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;}
}
Run Code Online (Sandbox Code Playgroud)
ObservableA 返回一个对象数组,我正在编写一个函数 ObservableB 来使用 ObservableA 返回的数组返回 myClass 的数组。
当我调试这段代码时,我可以看到map参数中的“x”是来自ObservableA的整个数组,而不是数组的对象元素。
所以无法访问属性。
可能出什么问题了?
更新:有没有办法将数组的单个 Observable 转换为 Observable 数组,以便我可以处理元素?
我认为您误解了可观察量的工作原理。
您将获得整个数组,因为这就是可观察对象正在处理的内容。它是 a Observable<Array<any>>,因此map操作员将得到 a Array<any>。如果您想一次处理一个对象,您的可观察对象应该是一种类型Observable<any>(或者更好,使用像 这样的具体类Observable<TestClass>)
Observable<T>您可以从Array<T>using创建一个from,请参阅此页面:
http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#static-method-from
我不知道这如何适用于你,因为你没有发布如何observableA工作。
以下是我学习 RxJ 时使用的一些资源: