史诗中的序列执行

Posted

技术标签:

【中文标题】史诗中的序列执行【英文标题】:Sequence execution in epic 【发布时间】:2021-05-02 16:25:13 【问题描述】:

我需要修改史诗以便在完成删除后调用附加操作,史诗 看起来像:

const deleteComponentEpic: Epic<
  AppActions,
  AppActions,
  AppStore,
  ComponentDetailsEpicsDependencies
> = (action$, _,  components ) =>
  action$.pipe(
    filterAction(deleteComponentAction.request),
    exhaustMap(action =>
      components.deleteComponent(action.payload.id).pipe(
        map(() => deleteComponentAction.success()),
        catchError((error: Error) => of(deleteComponentAction.failure(errorHandler(error)))),
      ),
    ),
  );

删除成功后需要调用下面的动作,怎么做?以下是我的行动的导入:

import  fetchCategoryComponentList  from '../../store';

【问题讨论】:

【参考方案1】:

没有强制要求您必须具有一对一的输入/输出比例。如果需要,您可以使用 mergeMap(又名 flatMap)发出多个操作。 您可以执行以下操作 -

components.deleteComponent(action.payload.id).pipe(
        mergeMap(() => of(deleteComponentAction.success(), fetchCategoryComponentList())),
        catchError((error: Error) => of(deleteComponentAction.failure(errorHandler(error)))),
      ),

阅读此答案以获取更多信息:https://***.com/a/40895613/11167389

【讨论】:

以上是关于史诗中的序列执行的主要内容,如果未能解决你的问题,请参考以下文章

如何在不同文件中的史诗之间共享变量?

史诗级详解面试中JVM的垃圾回收

javascript 执行史诗一次

为啥我的 redux-observable 史诗没有被触发?

史诗级干货长文HMM模型

SpringBoot❤SpringClould常用注解史诗级汇总