我从操作payload: { items: Administration[], id: number}
获得有效载荷效果。
我在内部使用服务来发布新值并在成功的操作中返回。
我只想通过httpcall的结果传递ID,但是在服务后illove。
我在switchmap之后尝试了mergeMap(([action, items]) => new SuccessAction({items}))
。
但不要真正了解在哪里或如何实施它,类似的东西,
@Effect() update$: Observable<Action> = this.actions$.pipe(
ofType<UpdateAction>(ActionTypes.UPDATE),
switchMap(action => this.service.update(action.payload.items).pipe(
map(response => response.items }),
catchError(error => of(new FailureAction({error}))
))),
mergeMap(([action, items]) => new UpdateAction({action.payload.id, items}))
);`
如果有人可以帮助我。
注意新的RXJ标准,实际上您正在使用管道中的管道。问题是您正在使用管道中丢失的数据(有效载荷),您可以将其保存在其中,也可以使用withLatestFrom()
重新获取信息。
@Effect() update$: Observable<Action> = this.actions$.pipe(
ofType<UpdateAction>(ActionTypes.UPDATE),
switchMap(action => ({ payload: of(action.payload), response: this.service.update(action.payload.items)})),
map(data => new UpdateAction({id: data.payload.id, items: data.response.items})),
catchError(error => of(new FailureAction(error))),
);
我希望这对您有帮助!