HTTP 错误报告服务
HttpErrorReporterService 是由 @abp/ng.core 包提供的服务。通过该服务可以报告 HTTP 错误。当有错误被报告时,该服务会发出事件,并将错误以数组形式保存。RestService 使用 HttpErrorReporterService 来报告错误。
查看以下示例了解如何报告错误:
import { HttpErrorReporterService } from '@abp/ng.core';
import { HttpClient } from '@angular/common/http';
import { Injectable, inject } from '@angular/core';
import { of } from 'rxjs';
import { catchError } from 'rxjs/operators';
@Injectable()
export class SomeService {
private http = inject(HttpClient);
private httpErrorReporter = inject(HttpErrorReporterService);
getData() {
return this.http.get('http://example.com/get-data').pipe(
catchError(err => {
this.httpErrorReporter.reportError(err);
return of(null);
}),
);
}
}
查看以下示例了解如何监听已报告的错误:
import { HttpErrorReporterService } from '@abp/ng.core';
import { HttpErrorResponse } from '@angular/common/http';
import { Injectable, inject } from '@angular/core';
@Injectable()
export class MyErrorHandler {
private httpErrorReporter = inject(HttpErrorReporterService);
constructor() {
this.handleErrors();
}
handleErrors() {
this.httpErrorReporter.reporter$.subscribe((err: HttpErrorResponse) => {
// 在此处处理错误
});
}
}
API
reporter$: Observable<HttpErrorResponse>
reporter$ 是一个 getter 方法,返回一个可观察对象。当有新错误被报告时会发出事件。事件值的类型为 HttpErrorResponse。
errors$: Observable<HttpErrorResponse[]>
errors$ 是一个 getter 方法,返回一个可观察对象。当有新错误被报告时会发出事件。事件值是运行时报告的所有错误。
errors: HttpErrorResponse
errors 是一个 getter 方法,返回所有已报告的错误。
reportError(error: HttpErrorResponse): void
reportError 是一个方法。通过该方法可以报告错误。
当错误被报告时,该方法会触发 reports$ 和 errors$ 可观察对象发出事件。
抠丁客


