如何从组件中的服务方法获取catchError消息?

时间:2019-12-23 03:11:14

标签: angular typescript

getFinanceDetails(clientId: string, type: OnvioClientUpdateType): Observable <ClientFinance> {
  return this.getClientContactDetailsById(clientId, type).pipe(mergeMap((data: any) => {
    const clientFinanceDetails = this.clientContactDetailsByJsonData(data);
    return of(clientFinanceDetails);
  })).pipe(catchError(ExceptionHandler.handleError));
}

我正在从组件中调用此函数,这是我的服务方法。所以我的问题是, 我该如何获取此错误并在catcherror函数中返回,因为Observable ClientFinance被覆盖了我的错误。

2 个答案:

答案 0 :(得分:0)

您可以使用throwError将其扔回去。

类似这样的东西:

import { Observable, of, throwError } from "rxjs";
import { catchError, map } from "rxjs/operators";

getFinanceDetails(clientId: string, type: OnvioClientUpdateType): Observable <ClientFinance> {
  return this.getClientContactDetailsById(clientId, type)
    .pipe(
       mergeMap((data: any) => {
          const clientFinanceDetails = this.clientContactDetailsByJsonData(data);
          return of(clientFinanceDetails);
       }),
       catchError(error => throwError("Something went wrong: ", error))
    );
}

答案 1 :(得分:0)

您可以按以下方式处理catchError

catchError(err => {
    console.log('Handle error locally and rethrow it..', err);
    ExceptionHandler.handleError;
    return throwError('Error occurred.', err);    
})
相关问题