Angular-ngrx,关于错误的switchMap进一步的订阅未触发

时间:2019-03-07 18:51:48

标签: angular rxjs ngrx ngrx-store

我的角度应用程序中有ngrx存储。这是我的组件初始化函数。

ngOnInit() {

 this.$appState = this.appState.getIndex().pipe(switchMap((index) => {
      // do something and return subscription
      return this.someService.getItem(index);
    }), switchMap((data) => {
      return this.someOtherService.getItemDetails(data.index);
    })).subscribe((item: any) => {

});

在状态更改时,当组件处于活动状态(未销毁)时,组件将订阅appState.getIndex并获取最新的项目并获取最新的itemDetails。只要this.someService.getItem(index);this.someOtherService.getItemDetails(data.index)返回200,就可以正常工作。有些项目完全没有详细信息或项目,然后调用返回404。此后,状态会进一步变化。没有触发订阅电话。不确定,我的错误到底是什么。有人可以指出我的错误吗?

1 个答案:

答案 0 :(得分:0)

大多数情况下,您的每个请求都应处理自己的错误。

    ngOnInit() {

     this.$appState = this.appState.getIndex().pipe(switchMap((index) => {
          // do something and return subscription
          return this.someService.getItem(index).pipe(
              catchError(err => handlerror(err))
             );
        }), switchMap((data) => {
          return this.someOtherService.getItemDetails(data.index).pipe(
              catchError(err => handlerror(err))
             );
        })).subscribe((item: any) => {

    });