我正在寻找在单一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? –