2017-08-16 50 views
2

我有兩個史詩epicA和epicB。排序史詩在減少

由於與其相關的api調用較慢,B受到反壓。 (上傳)

不過,我需要確保所有來自b。填入A.

因此,如果請求是

B1....A1....B2...B3...

如果B1已經不是以前的API請求由時間B2火災完成,則分辨率應

B1, B2, B3, A1

如果B1完成B2被觸發之前,分辨率應該是

B1, A1, B2, B3

我原先以爲

const bigEpic = epicA.concat(epicB) 

將是一個答案,但我不認爲這是很有意義的

另一個想法:

const bigEpic = action$ => epicA(action$).concat(epicB(action$)) 
+0

如果你改寫你的問題只是rxjs沒有終極版,可觀察到的行話,你應該得到更多的答案:)幾乎所有的終極版,可觀察到的問題實際上只是rxjs – jayphelps

+0

這是否歸結爲一個問題rxjs?由於我正在聲明一些流程層次結構,因此我沒有發現通過這種方式解決兩個史詩的模式。 –

回答

0

您可以使用Observable.merge用於測序行爲。

const fetchFirst =() => 
    (action, store) => Observable.ajax('/first'); 

const fetchSecond =() => 
    (action, store) => Observable.ajax('/second'); 

const fetchBoth =() => 
    (action, store) => 
    Observable.merge(
     fetchFirst()(action, store), 
     fetchSecond()(action, store), 
    )