在使用 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 DeleteRoleSuccessAction
和 id
。有什么方法可以在 map 运算符中获取 RoleActionTypes.DeleteRoleRequested
的动作有效负载?
通过 map
操作员 deleteRole
调用的 return 想要的结果:
this.rolesService.deleteRole(action.payload.id)
.pipe(map(() => action.payload)
我正在与 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 DeleteRoleSuccessAction
和 id
。有什么方法可以在 map 运算符中获取 RoleActionTypes.DeleteRoleRequested
的动作有效负载?
通过 map
操作员 deleteRole
调用的 return 想要的结果:
this.rolesService.deleteRole(action.payload.id)
.pipe(map(() => action.payload)