相关疑难解决方法(0)

使用项目反应器 mergeWith() 运算符来实现“if/elseif/else”分支逻辑

我正在尝试使用项目反应 mergeWith器运算符来实现if/elseif/else此处描述的分支逻辑:RxJS,其中是 If-Else Operator

提供的示例是用 RxJS 编写的,但基本思想保持不变。

filter基本上这个想法是在 3 上使用运算符(因此具有 3 个不同的谓词)并按如下方式monos/publishers合并 3 (这里当然是 RxJS):monosObservables

const somethings$ = source$
  .filter(isSomething)
  .do(something);

const betterThings$ = source$
  .filter(isBetterThings)
  .do(betterThings);

const defaultThings$ = source$
  .filter((val) => !isSomething(val) && !isBetterThings(val))
  .do(defaultThing);

// merge them together
const onlyTheRightThings$ = somethings$
  .merge(
    betterThings$,
    defaultThings$,
  )
  .do(correctThings);
Run Code Online (Sandbox Code Playgroud)

我复制并粘贴了上述文章中的相关示例。

考虑something$,betterThings$defaultThings$是我们的单元isSomething&isBetterThings是谓词。

现在这是我的 3 个真实的monos/publishers(用 java 编写的): …

reactive-programming project-reactor

2
推荐指数
1
解决办法
1474
查看次数