【发布时间】:2017-04-14 16:12:28
【问题描述】:
我正在寻找在 redux-observable 中间件的单个 Epic 中调度多个 redux 操作的方法。
假设我有关注 Epic。每次SEARCH事件发生时,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 的类似库?
标签: javascript redux rxjs redux-observable