在使用 mergeMap 为 API 调用 ngrx 效果进行管道传输后,访问地图内的动作有效负载数据

Accessing action payload data inside map after piping it with mergeMap for API call in ngrx effects

我正在与 NGRX 6.01 合作 Angular 6 项目。

@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 调用以删除效果中的角色并调用 API 服务以使用 mergeMap 删除角色。之后,我 return 使用 map 获取已删除角色的 ID。我不会在此特定请求中获得已删除角色的 ID。所以我想做的是,在成功删除角色后,我必须从 RoleActionTypes.DeleteRoleRequested 的操作负载中 return DeleteRoleSuccessActionid。有什么方法可以在 map 运算符中获取 RoleActionTypes.DeleteRoleRequested 的动作有效负载?

通过 map 操作员 deleteRole 调用的 return 想要的结果:

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