【发布时间】:2018-10-08 12:08:48
【问题描述】:
我正在使用 Angular HTTP 和 rxjs 处理一个用户友好的 API。我正在尝试从我的服务中返回Observable<List<Object>>。下面是我的 get 请求返回的 JSON 示例:
Items: {
"$type": "System.Collections.Generic.List`1[[Asi.Soa.Core.DataContracts.GenericEntityData, Asi.Contracts]], mscorlib"
"$values": [
Object { "$type": "Asi.Soa.Core.DataContracts.GenericEntityData, Asi.Contracts", EntityTypeName: "7", Properties: {…} }
Object { "$type": "Asi.Soa.Core.DataContracts.GenericEntityData, Asi.Contracts", EntityTypeName: "7", Properties: {…} }
Object { "$type": "Asi.Soa.Core.DataContracts.GenericEntityData, Asi.Contracts", EntityTypeName: "7", Properties: {…} }
]
}
然后在每个Object里面:
{
"$type": "Asi.Soa.Core.DataContracts.GenericEntityData, Asi.Contracts"
EntityTypeName: "7"
Properties: {
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyDataCollection, Asi.Contracts"
"$values": {}
}
我需要为每个项目提取$values,然后返回$values 对象的列表。但是我不知道如何在没有订阅的情况下使用 Angular 和 rxjs 做到这一点。而且我不想订阅,因为我希望 组件,而不是 服务,来处理结果数据。
我一直在寻找 rxjs Operators 来解决我的问题。但是似乎没有一个运算符可以将 List<X> 转换为 X 同时保留 Observable。
这可能与 Angular2+ 和 rxjs 有关吗?或者是否有更好的方法来完成这项任务。我对响应式编程比较陌生,所以任何一般性的建议都将不胜感激。
【问题讨论】:
标签: javascript angular rxjs observable reactive-programming