catcherror正在捕获空错误http.get

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

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

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

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

@Injectable() export class PersonalDetailEffect {
    constructor(private actions$: Actions, private personalDetailService: PersonalDetailService, private store: Store) {}
    getCustomers$ = createEffect(() =>
        this.actions$.pipe(
            ofType(PersonalDetailActionTypes.LOAD_CUSTOMER),
            mergeMap((action: any) => {
                return this.personalDetailService.getCustomers(action.payload).pipe(
                    map(response => {
                        return new SetPersonalDetailsActionSuccess(response);
                    }),
                    catchError(error => of(new SetPersonalDetailPageError(error)))
                );
            })
        )
    );

服务台

public getCustomers(customerSearchModel: CustomerSearchModel): Observable<any> {
    const params = {
        idNumber: customerSearchModel.saIdNumber,
    };
    return this.http
        .get(`${environment.CONSUMER_URL}/v1/customer-search1/${customerSearchModel.transactionId}/${sourceSystem}`, {
            params,
            observe: 'response',
        })
        .pipe(
            map(response => {
                return response.body;
            })
        );
}

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

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

}
错误操作:

console.log-in-action.ts值

我需要这样做。

暂无答案!

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

相关问题