我想订阅两个不同的流,A和B.
但是,尽管两个事件都可以缓冲,但在处理任何与B的异步任务之前,所有A必须完成。
输入流
--- ---- A1 B1 B2 ---- ---- ---- A2>
期望的输出
------ ResponseA1 ------------- ResponseA2 ------- ---- ResponseB1 --- ResponseB2>
我最初尝试
outputStream = Observable.concat(A,B)
我注意到B不会开火。这是forkJoin的用例吗?
编辑:
流A在Rx意义上没有完成,因为我们希望保持订阅同一组事件(在这种情况下为redux操作)
我真正想要在A流周围指定的是它的完成"事件看起来满足两个条件:
这非常迫切,因为我正在从传奇中重构我们的代码库。
如果我可以在" Rx-speak"
中说出来StreamA = actionStream.concatMap(action => longAsyncTask())
StreamB = actionStream.switchMap(action => shortAsyncTask())
MasterStream = Observable.forkJoin(StreamA, StreamB)
我希望MasterStream让两个流都订阅它们必需的actionTypes,StreamA任务首先发出值,一旦StreamA不再发出值,只从StreamB发出一个val