繁体   English   中英

ngrx - 使用错误处理进行链接效果:如果第一次api fetch成功,则从第二个api获取数据

[英]ngrx - effects chaining with error handling : fetch data from second api if first api fetch was successful

我看到了一些SO答案,以及这个中等帖子,但这些仍然无法解决我当前的问题。

场景:

  1. 添加产品。
  2. 如果成功,请获取所有产品的清单。

这两种情况中的每一种都可能有错误:

  1. 业务错误,包含特定于业务的错误消息
  2. 网络错误,40x错误代码等通用内容

目前,我具有使用服务添加产品的效果,并根据操作失败的成功发送动作。 这将更新商店,并将currentProduct设置为添加的产品。

  @Effect()
  addProduct$: Observable<Action> = this.actions$.pipe(
    ofType(AddProductAction),
    map((action: AddProductAction) => action.payload),
    switchMap((ProductToAdd: Product) =>
      this.productService.addProduct(ProductToAdd).pipe(
        map(response => {
          if (this.responseContainsBusinessError(response)) {
            return new AddProductBusinessError(response);
          } else { // no business error
            return new AddProductSuccess(response);
          }
        }),
        catchError(err => of(new AddProductFail(err))) // network/http error etc
      )
    )
  );

有人可以请说明如何更改此代码,以便我可以添加第二个效果/ api调用从服务器获取产品列表?

只需添加另一个将在AddProductSuccess触发的AddProductSuccess

@Effect()
  listAllProducts$: Observable<Action> = this.actions$.pipe(
    ofType(AddProductSuccess),
    ....

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM