订阅Observable - >过滤器 - >提供可观察的

时间:2017-12-08 17:00:49

标签: angular rxjs observable subscribe

我正在尝试使用Angular服务,该服务使用其他服务来提供这些服务的元数据。数据对象是具有连接类的不同类别的人。 (即客户,顾问和销售关系。)

我想跟踪的一个基本指标是客户是否已被分配顾问。 (即不匹配)。我在我的标准服务中有一个名为Clients的Observable Array,我在MetaData Service中订阅了这样的:

this.clientService.clientArray().map( ..... ).subscribe(i => this.unmatchedClients.next(i);

我想要做的是过滤来自Observable Subscription的数组以检查多个字段。在其他地方建议我应该像这样进行完整的过滤器调用:

this.clientService.clientArray().map( r => {
    r.filter( i => {
        i.connected === true
    })
}).subscribe(r => this.unmatchedClients.next(r));

预期的结果应该是一组客户,而不是我可以订阅的个人客户,并获得计算的长度。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

我认为你还有一个不必要的步骤。如果你想过滤数组,你需要管道订阅

this.clientService.clientArray()
 .filter( client => {
    return client.connected;
})
.subscribe(r => this.unmatchedClients.next(r));

订阅中的一些代码我不知道目标是什么,所以我保持原样。