在使用mergeMap为Ngrx效果中的API调用管道化后,在地图内部访问动作有效载荷数据

时间:2018-07-09 06:40:44

标签: angular ngrx ngrx-effects

我正在与Angular 6一起开发NGRX 6.01项目。

@Effect()
deleteRole$ = this.actions$.pipe(
    ofType<DeleteRoleRequestedAction>(RoleActionTypes.DeleteRoleRequested),
    mergeMap(action => this.rolesService.deleteRole(action.payload.id)),
    map((response) => {
        return new DeleteRoleSuccessAction({ id: response.id });
    })
);

与上面的代码一样,我正在捕获用于删除效果中角色的API调用,以及使用mergeMap来调用API服务以删除角色。之后,我使用map返回已删除角色的ID。在此特定请求中,我不会获取已删除角色的ID。因此,我想做的是,成功删除角色后,我必须从DeleteRoleSuccessAction的操作有效载荷中返回idRoleActionTypes.DeleteRoleRequested。是否有任何方法可以在地图操作符中获取RoleActionTypes.DeleteRoleRequested的操作有效载荷?

1 个答案:

答案 0 :(得分:1)

只需通过deleteRole运算符从您的map调用中返回所需结果:

this.rolesService.deleteRole(action.payload.id)
   .pipe(map(() => action.payload)