Angular 6效果合并有效载荷和来自服务调用的数据在新操作中



我从操作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))),
);

我希望这对您有帮助!

相关内容

  • 没有找到相关文章

最新更新