Javascript 创建一个元epic,其工作原理类似于combineEpics,但基于名称空间选择一个epic

Javascript 创建一个元epic,其工作原理类似于combineEpics,但基于名称空间选择一个epic,javascript,rxjs,reactive-programming,reactive,Javascript,Rxjs,Reactive Programming,Reactive,我正试图给我的史诗命名。我基本上希望结合我的epic,但是使用的epic应该取决于在我的状态中设置的名称空间。 到目前为止,我已经到了这里: const epics = { 'ns1': nameSpace1Epic, 'ns2': nameSpace2Epic, 'default': (action$, store) => { return Observable.of({type: 'NOP'}) } } const superEpic = (action$, s

我正试图给我的史诗命名。我基本上希望结合我的epic,但是使用的epic应该取决于在我的状态中设置的名称空间。 到目前为止,我已经到了这里:

const epics = {
  'ns1': nameSpace1Epic,
  'ns2': nameSpace2Epic,
  'default': (action$, store) => {
    return Observable.of({type: 'NOP'})
  }
}
const superEpic = (action$, store) => {
  const { namespace } = store.getState()
  const epic = epics[namespace]
  const resultAction$ = epic(action$, store)
  return resultAction$
}
这适用于第一个操作,它成功地切换到正确的命名空间。 然而,当第二个动作出现时,它仍然停留在第一个选择的名称空间。 没有任何动作通过超级史诗,它直接进入第一部史诗

我一直在阅读Rx文档,并尝试不同类型的运营商,没有任何运气。
有人知道我可能做错了什么吗?

我找到了解决问题的办法
superEpic
应该是一个将操作(一次一个)定向到命名空间流的流,它现在所做的只是用另一个流替换自己<代码>平面图救援:

const superEpic = (action$, store) => 
  action$.flatMap(action => {
    const { namespace } = store.getState()
    const epic = epics[namespace]
    return epic(Observable.of(action), store)
  })
如果要在操作流中使用
of type
运算符,请确保从
redux observable/lib/ActionsObservable
导入
ActionsObservable
像这样:

从'redux observable/lib/ActionsObservable'导入{ActionsObservable}

我找到了解决问题的办法
superEpic
应该是一个将操作(一次一个)定向到命名空间流的流,它现在所做的只是用另一个流替换自己<代码>平面图救援:

const superEpic = (action$, store) => 
  action$.flatMap(action => {
    const { namespace } = store.getState()
    const epic = epics[namespace]
    return epic(Observable.of(action), store)
  })
如果要在操作流中使用
of type
运算符,请确保从
redux observable/lib/ActionsObservable
导入
ActionsObservable
像这样:

从'redux observable/lib/ActionsObservable'导入{ActionsObservable}