【发布时间】:2019-04-17 15:01:33
【问题描述】:
在使用 RxJS 运算符时遇到问题。
我的端点返回Observable<Array<TaskReprintReasonCode>>
然后我使用异步管道订阅这个 observable。
this.reason$ = this.taskService.getTaskReprintReasonCodes();
这很有效,直到我需要从该原因列表中过滤或映射某些内容。
this.reasons$ = this.taskService
.getTaskReprintReasonCodes()
.pipe(filter(r => r.reasonDescription === "New"));
我猜这与我定义从数据库返回的类型的方式有关。命名Observabe<INSERTTYPE[]>是不好的做法
【问题讨论】:
-
您正在访问一个数组。您很可能希望使用数组过滤器,查看您的代码。 Observable 地图运算符会更有意义吗?
this.reasons$ = this.taskService.getTaskReprintReasonCodes().pipe(map(rArray => rArray.filter(r => r.reasonDescription === 'New'))). -
这是您需要知道的吗?您似乎将 RxJs 中的过滤器与数组中的过滤器混为一谈。数组生成新的过滤列表,RxJs 过滤流并阻止发出对过滤器无效的项目。
-
我可以推荐在我的视频课程中了解更多关于 rxjs6 的信息:packtpub.com/web-development/hands-rxjs-web-development-video
标签: angular rxjs observable rxjs5