rxjs6过滤器Observable <array <any >>

时间:2018-10-14 08:28:18

标签: angular angularfire2 rxjs6

在users.service.ts内部有一个angularFirestore可观察数组:

$users: Observable<Array<any>>;
constructor()
{
    this.$users = this.angularFirestore.collection('users').valueChanges();
}

这是对象类:

class User
{
    name: string;
    status: boolean;
    index: number;
}

我需要基于多个字段进行过滤,但是以某种方式在users.component.ts中使用以下代码不会订阅任何结果:

users: Users[];
ngOnInit()
{
    this.usersService.$users.pipe
    (filter((user: User) => user.name == 'some value'))
    .subscribe((users: User[]) =>
    {
        this.users = users;
    });
}

我的最终目标是能够过滤以包含 user.name搜索字符串和user.status == true,并排除其余无效结果。

我想在没有管道的情况下进行此操作。希望对纠正和改进现有代码以实现上述目标的任何帮助。预先感谢!

2 个答案:

答案 0 :(得分:1)

不确定0的问题。但是,一旦将数组放入.pipe

中,您也可以这样做
.subscribe

顺便说一句,kunwar97提到的是没有错误。这是将运算符应用于Rxjs6中的Observables的唯一方法。

答案 1 :(得分:-1)

这是Angular 6中的已知问题。 请参考此链接。 https://github.com/angular/angularfire2/issues/1748

安装rxjs-compact将解决您的问题

npm install rxjs@6 rxjs-compat@6 --save