我正在尝试使用项目反应 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 编写的): …