redux-observable
ミドルウェアの単一の叙事詩で複数の還元アクションをディスパッチする方法を探しています。
私が次のエピックを持っているとしましょう。イベントが発生するたびにSEARCH
、Epic はバックエンドからデータをロードし、アクションをディスパッチしRESULTS_LOADED
ます。
searchEpic = (action$) =>
action$
.ofType('SEARCH')
.mergeMap(
Observable
.fromPromise(searchPromise)
.map((data) => {
return {
type: 'RESULTS_LOADED',
results: data
}
})
)
searchPromise
ここで、が解決されたときに追加のアクションをディスパッチする必要があると仮定しましょう。
RESULTS_LOADED
これを行う最も簡単な方法は、2 番目のアクションをリッスンしてディスパッチする 2 番目の叙事詩を持つようです。そのようです:
resultsLoadedEpic = (action$) =>
action$
.ofType('RESULTS_LOADED')
.map(({results} => {
return {
type: 'MY_OTHER_ACTION',
results
}
})
この単純な例では、非常に簡単です。しかし、エピックが成長すると、他のアクションをトリガーすることを唯一の目的とする多くの還元アクションを自分自身が持っていることに気付く傾向があります。さらに、rxjs コードの一部を繰り返す必要があります。私はこれが少し醜いと思います。
それで、私の質問: 単一のエピックで複数の還元アクションをディスパッチする方法はありますか?