catcherror正在捕获空错误http.get

jhdbpxl9  于 2021-09-29  发布在  Java
关注(0)|答案(0)|浏览(221)

每当api失败并返回404状态时,我试图向用户显示一个错误页面。在第一个屏幕中,你们可以看到我把错误的url放在了错误的场景中,所以api给出了错误404。我只需要处理这种情况。

在第二幅图中,您可以看到错误响应

问题是我在错误分派操作中得到了一个“null”,这只发生在这个api中,其他api工作正常。
影响2.ts:

  1. @Injectable() export class PersonalDetailEffect {
  2. constructor(private actions$: Actions, private personalDetailService: PersonalDetailService, private store: Store) {}
  3. getCustomers$ = createEffect(() =>
  4. this.actions$.pipe(
  5. ofType(PersonalDetailActionTypes.LOAD_CUSTOMER),
  6. mergeMap((action: any) => {
  7. return this.personalDetailService.getCustomers(action.payload).pipe(
  8. map(response => {
  9. return new SetPersonalDetailsActionSuccess(response);
  10. }),
  11. catchError(error => of(new SetPersonalDetailPageError(error)))
  12. );
  13. })
  14. )
  15. );

服务台

  1. public getCustomers(customerSearchModel: CustomerSearchModel): Observable<any> {
  2. const params = {
  3. idNumber: customerSearchModel.saIdNumber,
  4. };
  5. return this.http
  6. .get(`${environment.CONSUMER_URL}/v1/customer-search1/${customerSearchModel.transactionId}/${sourceSystem}`, {
  7. params,
  8. observe: 'response',
  9. })
  10. .pipe(
  11. map(response => {
  12. return response.body;
  13. })
  14. );
  15. }

主要问题是调用了setpersonaldetailpageerror,但如果错误为null,则应该有错误响应。
行动

  1. export class SetPersonalDetailPageError implements Action {
  2. readonly type = PersonalDetailActionTypes.LOAD_PERSONAL_DETAIL_ERROR;
  3. constructor(readonly payload: any) {
  4. console.log(payload);
  5. }

}
错误操作:

console.log-in-action.ts值

我需要这样做。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题