如何在一个史诗中处理多种动作类型?做同样的任何缺点?

Aji*_*lve 14 observable redux rxjs5 redux-observable

对redux-observables,rxjs和observables来说相当新.我想知道如何处理另一个动作,在同一个史诗中说'ActionTwo'

const Epic1 = (action$,store) => {
return action$.ofType('ActionOne')
 .mergeMap((action) => {
      return ajax({'method': 'GET', 'url': 'someUrl')
         .map(response => resultActoin(action.userId, response.response));


       }
  );
 }
Run Code Online (Sandbox Code Playgroud)

就像是

const Epic1 = (action$){
   if('ActionOne') make a API call.
   if('ActionTwo') make some other API call.
   else do nothing.

}
Run Code Online (Sandbox Code Playgroud)

Seb*_*ald 31

它是同一个API调用吗?如果是这样,则ofType()接受多种类型.你可以这样做action$.ofType('ActionOne', 'ActionTwo').

如果你想向另一个API/URL发出请求,我会建议制作另一个史诗.您可以"合并"所有史诗,combineEpics请参阅:https://redux-observable.js.org/docs/basics/SettingUpTheMiddleware.html

  • ^^^这个.每个任务都有一个史诗几乎总是更好 (3认同)