我正在处理的场景由3个可观察到的组成。
斯塔托斯
:当我需要开始一系列的处理时,这个可观察到的发射-发射的数据是
进程
我需要完成的过程
多斯托布斯
:可见光发射
命令
我必须做点什么-我想在这之后开始听这样的观察
斯塔托斯
已经发射,我需要
进程
履行职责的过程
doTheWork(command, processId)
恩多布
:当我必须结束某个
进程
必须回去听
斯塔托斯
所以基本上是:
起点
,
道格斯
直到
终点
然后继续听下一个
起点
.
也可以保证
起点
迟早会来的
终点
不可能有两个
起点
没有
终点
介于或2之间
终点
没有
开始于
之间。
前两个步骤可以通过
switchMap
,像
StartObs
.switchMap(processId => DoStuff.map(command => ({command, processId})))
.tap(data => doTheWork(data.command, data.processId))
我不清楚的是如何处理
恩多布
.
选择使用
takeUntil
不工作,因为我不想完成从
斯塔托斯
因为我得回去听下一个过程才开始。