我正面臨RxJS問題。選擇正確的RxJS構造以確保一個訂閱在另一個訂閱完成之前完成
我的應用正在設計如下:我有兩個不同的客戶端:ClientA
& ClientB
預訂了兩個不同的觀測量:ObservableA
& ObservableB
。
請注意,該應用程序還會變動一個名爲aVariable
的變量。
這裏是流:
ClientA
訂閱了ObservableA
。ClientB
訂閱ObservableB
。ObservableB
訂閱閱讀false
從aVariable
並完成。ObservableA
訂閱集aVariable
至true
並完成(晚於ObservableB
)。
而什麼是真正意圖是爲ObservableA
S「的訂閱之前ObservableB
完成」,讓ClientB
將從aVariable
讀true
...或者換一種方式,一定程度上保證ObservableB
的訂閱等待直到其他訂閱已完成。
我不確定用什麼RxJS結構來實現我想要的(我目前使用普通Observable)。我相信我在這裏需要的不僅僅是簡單的Observable ...
有人可以幫忙嗎?
P.S. 注意aVariable
是在NGRX店舉行,但我不認爲這是有關這個問題...
P.P.S. 以上是我的真實應用程序的簡化。
通常,當您想要運行異步任務以便使用'concat'或'concatMap'。看到也許類似的問題http://stackoverflow.com/questions/39566268/angular-2-rxjs-how-return-stream-of-objects-fetched-with-several-subsequent/39578646#39578646和http:// stackoverflow。 com/questions/36713531/how-to-use-exhaustmap-in-reactivex-rxjs-5-in-typescript/39589408#39589408 – martin
Hi Martin。唯一的麻煩是那些是不同的客戶。因此不可能使用concat。 – balteo
你可以給你一個代表什麼樣的代碼樣本嗎?我不清楚:什麼是「客戶端A」?你是什麼意思你完成訂閱?你的意思是「普通」的「可觀察」。 – paulpdaniels