私はredux-observable
ミドルウェアの1つのEpicで複数のレビュックスアクションをディスパッチする方法を探しています。redux-observable - 1つの叙事詩に複数のレビュックスアクションをディスパッチ
次のような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
を聞き、第2のアクションをディスパッチする第2の叙事詩があるようです。そうですね:
resultsLoadedEpic = (action$) =>
action$
.ofType('RESULTS_LOADED')
.map(({results} => {
return {
type: 'MY_OTHER_ACTION',
results
}
})
この簡単な例では、非常に簡単です。しかし、Epicsが成長したとき、私は他の行動を誘発することが唯一の目的である、多くの還元的行動を取っていることが分かります。さらに、いくつかのrxjsコードを繰り返す必要があります。私はこれが少し醜いと思う。
私の質問:単一のEpicに複数のreduxアクションをディスパッチする方法はありますか?
ngrx/effectsはangle2ベースのアプリケーションのためのショートカットを実装していますが、同様のライブラリがredux-observableのために存在するかどうかはわかりません。 –