我有一個SPA正在從服務器加載一些全局/共享數據(我們稱之爲APP_LOAD_OK)和頁面特定數據(DASHBOARD_LOAD_OK)。我想顯示一個加載動畫,直到APP_LOAD_OK和DASHBOARD_LOAD_OK都被分派。redux-observable:一旦至少觸發另一個動作,映射到一個動作
現在我有一個在RxJS中表達這個問題。我需要的是在每個DASHBOARD_LOAD_OK後觸發一個動作,只要至少有至少一個APP_LOAD_OK。這樣的事情:
action$
.ofType(DASHBOARD_LOAD_OK)
.waitUntil(action$.ofType(APP_LOAD_OK).first())
.mapTo(...)
有誰知道,我可以如何表達它在有效的RxJS?
在這個實現中有幾個危險,你應該知道:a)你沒有清理你創建的訂閱(x2),做一個好的操作符,你應該返回你在'create'中創建的訂閱,b)'緩衝區'和'完成'創建*每個調用*不*每個訂閱*,這是共享狀態,這對於冷觀察者來說是沒有代價的(提示嘗試訂閱這個流不止一次,你可能會看到一些奇怪的行爲)。 – paulpdaniels
你是對的,非常感謝你清理它。 :)沒有多少考慮,我只是很高興我終於有了一些解決方案。 (如果我有更多時間,我可能會稍後再編輯它,或者如果你願意,可以自由地這麼做) – davido