基于过滤器RxJS的不同管道

mafus1

我有以下问题。我想使用Angular中的异步管道订阅一个可观察的对象。但是管道中的数据可以源自不同的数据源,并且管道可以根据数据源看起来有所不同。

现在它的实现方式不起作用,因为我覆盖了第一个值,this.data$因此源A永远不会被订阅。

是否可以根据过滤器“拆分”管道?

problem.component.ts:

// Data source A and logic A 
this.data$ = this.service.context.pipe(
  filter(context => context.flag === true),
  switchMap(context => this.dataSourceA(context.id))
  map(data => this.processDataA(data))
);

// Data source B and logic B 
this.data$ = this.service.context.pipe(
  filter(context => context.flag === false),
  switchMap(context => this.dataSourceB(context.id))
  map(data => this.processDataB(data))
);

problem.component.html

<pro-table [data]="data$ | async"></pro-table>
反应式

将逻辑转移到您的 switchMap()

this.data$ = this.service.context.pipe(
   switchMap(context => context.flag
      ? this.dataSourceA(context.id).pipe(map(d => this.processDataA(d)))
      : this.dataSourceB(context.id).pipe(map(d => this.processDataB(d)))
   )
);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Powershell管道过滤器

来自分类Dev

cfdirectory基于过滤器输出不同的html

来自分类Dev

Django中基于不同过滤器的多个注释

来自分类Dev

基于条件的不同列的 SQL 过滤器

来自分类Dev

分层和管道过滤器

来自分类Dev

Powershell过滤器在管道中被忽略

来自分类Dev

分层和管道和过滤器

来自分类Dev

可观察的rxjs过滤器

来自分类Dev

如何使用rxjs中的过滤器

来自分类Dev

RxJS 3 条件过滤器

来自分类Dev

rxjs TypeScript 过滤器支持

来自分类Dev

基于多对多过滤器选择

来自分类Dev

基于Magento Ajax的属性过滤器

来自分类Dev

基于单选的AngularJS过滤器

来自分类Dev

基于内部联接的MySQL过滤器

来自分类Dev

更新基于多表过滤器的列

来自分类Dev

基于Laravel模式的过滤器

来自分类Dev

SQL-基于通配符的过滤器

来自分类Dev

基于检索值的Django过滤器

来自分类Dev

基于 groupby 的 DataFrame 过滤器

来自分类Dev

基于集合的 firestore 查询过滤器

来自分类Dev

基于过滤器数组的属性值

来自分类Dev

JavaScript-数组切片:基于不同范围的过滤器

来自分类Dev

基于不同列的多个过滤器的pandas df中的列的聚合值-python2.7

来自分类Dev

如何基于过滤器将CSV数据分为两个不同的Kafka主题

来自分类Dev

基于不同列的过滤器从Pandas DataFrame中提取文本

来自分类Dev

在Java流中基于过滤器使用不同的映射逻辑

来自分类Dev

jQuery:Datatables.net基于不同的过滤器更改分页类型

来自分类Dev

SQL查询:每个列值都是基于临时表上不同过滤器的夸张