【发布时间】:2017-04-11 17:05:24
【问题描述】:
我目前正在努力使用 RxJS 过滤 Map Observable。 我尝试做的是在订阅之前通过过滤函数减少我的 Map-Object。
我这样初始化主题:
public myObjects: ReplaySubject<Map<number, MyClass>> = new ReplaySubject<Map<number, MyClass>>(1);
这就是我尝试过滤的方式:
public subscribeToIncomingObjects() {
this.myObjects.map( (currentValue:Map<number, MyObject>) => Array.from(currentValue.values())).filter(
(con:myObject, index) => {
return someCondition;
}
);
}
由于某种原因 con 是 Array 类型而不是单个实例。我真的很感激任何建议。
【问题讨论】:
-
您从上一个
.map()调用返回一个带有Array.from(...)的数组。这就是为什么下面的filter()获取 Array 而不是原始对象的原因。 -
嗨@martin,感谢您的解释。出于某种原因,我希望在我的过滤器函数中获得数组的单个值,如下所述:reactivex.io/documentation/operators/filter.html。 Rx.Observable.range(X,Y) 不是真的生成了一个 Array Observable 吗?
-
不,这会创建一个
Observable<number>实例,该实例将该范围内的每个数字作为单独的项目发出。
标签: angular dictionary rxjs