我正在尋找在單一Epic redux-observable
中間件中調度多個redux動作的方式。redux-observable - 在單個史詩中調度多個redux動作
讓我們假設我有以下Epic。每次發生事件時,Epic都會從後端加載數據併發送RESULTS_LOADED
操作。
searchEpic = (action$) =>
action$
.ofType('SEARCH')
.mergeMap(
Observable
.fromPromise(searchPromise)
.map((data) => {
return {
type: 'RESULTS_LOADED',
results: data
}
})
)
現在,我們假設我需要在解決searchPromise
時調度附加動作。
這樣做最簡單的方法似乎有第二個史詩,將聽取RESULTS_LOADED
並派遣第二個動作。像這樣:
resultsLoadedEpic = (action$) =>
action$
.ofType('RESULTS_LOADED')
.map(({results} => {
return {
type: 'MY_OTHER_ACTION',
results
}
})
在這個簡單的例子中,它很容易。但是,當Epics增長時,我傾向於發現自己有很多redux動作,其唯一目的是觸發其他動作。此外,一些rxjs代碼需要重複。我覺得這有點難看。
所以,我的問題:有沒有辦法在單個Epic中分派多個redux動作?
ngrx/effects爲基於angular2的應用程序實現此快捷方式,我不知道類似的庫是否存在redux-observable? –