gpt4 book ai didi

angular - rxjs map参数是整个数组

转载 作者:搜寻专家 更新时间:2023-10-30 21:28:11 24 4
gpt4 key购买 nike

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 的整个数组,而不是数组的对象元素。

因此无法访问属性。

有什么问题吗?

更新:有没有办法将数组的单个 Observable 变成一个 Observable 数组,以便我可以处理元素?

最佳答案

我认为您误解了 observables 的工作原理。

您将获得整个数组,因为这是可观察对象正在处理的内容。这是一个Observable<Array<any>> , 所以 map运算符(operator)将获得 Array<any> .如果你想一次处理一个对象,你的 observable 类型应该是 Observable<any> (或者更好,使用像 Observable<TestClass> 这样的具体类)

您可以创建一个 Observable<T>来自 Array<T>使用 from , 请参阅此页面: http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#static-method-from

我不知道这如何适用于你,因为你没有发布如何 observableA有效。

这是我在学习 RxJs 时使用的一些资源:

关于angular - rxjs map参数是整个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49161793/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com