根据数据在管道中更改运算符

时间:2018-08-14 21:06:20

标签: javascript rxjs

我想要实现以下行为:

source$.pipe(
  filter(...),
  map(...),
  /* and then switchMap or concatMap based on provided value */
);

是否存在if ... else或switch ... case rxjs函数,这些函数将基于管道中的数据返回运算符?

1 个答案:

答案 0 :(得分:1)

您可以将合并运算符与条件过滤一起使用,然后仅从单个源$满足一个条件。

concatStream=source=>source
.pipe(.filter(..your condition)
switchMap(...))

switchStream=source=>source
.pipe(
.filter(..your condition)
switchMap(...))

merge(concat(source$),switch(source$)).subscribe()