首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将滤波器应用于可观测到的

将滤波器应用于可观测到的
EN

Stack Overflow用户
提问于 2020-04-10 14:00:52
回答 2查看 535关注 0票数 1

如何将滤波器应用到可观测的中,以便能够根据某些条件获得数据?我的要求是,我想从userObservable中筛选出用户,其状态是“经批准的”。

下面是我的http服务方法。

代码语言:javascript
复制
getUserList(){
    return this.httpClient.get<UserModel[]>(environment.userListUrl);
}

下面是UserModel

代码语言:javascript
复制
export class UserModel{
   userName: string;
   userStatus: string;
}

这就是我想要做的,但不确定如何应用过滤器,这样我就可以得到userStatus是“”的用户。

代码语言:javascript
复制
const userObservable$: Observable<UserModel[]>=this.userService.getUserList(this.cmpnyId);
observable$.pipe(filter(....<Need help here>));
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-10 14:04:00

查看RxJS关于地图操作符的文档:

代码语言:javascript
复制
filteredObservable$ = userObservable$.pipe(
  map(users => users.filter(user => user.userStatus == "Approved"))
)

您应该将可观察到的值映射到一个新的筛选数组。您使用的filter运算符只能用于允许或丢弃可观察到的值,它与.filter数组函数无关,后者从数组中筛选某些元素。

票数 1
EN

Stack Overflow用户

发布于 2020-04-10 14:16:19

您可以在服务中使用它,以便将业务逻辑保留到服务中。

代码示例:

代码语言:javascript
复制
enum Status{
    approved = 'Approved'
}

getUserList(){
    return this.httpClient.get<UserModel[]>(environment.userListUrl)
   .pipe(
    map(users => 
    users.filter(user => 
    user.userStatus == Status.approved))
}

注意,请将Enum用于类似的内容,以便使将来的状态更改更容易。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61141889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档