rxjs map 参数是整个数组

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 数组,以便我可以处理元素?

Kev*_*yon 5

我认为您误解了可观察量的工作原理。

您将获得整个数组,因为这就是可观察对象正在处理的内容。它是 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 时使用的一些资源: