mirror of https://github.com/abpframework/abp.git
committed by
GitHub
2 changed files with 75 additions and 4 deletions
@ -0,0 +1,71 @@ |
|||||
|
# HTTP Error Reporter Service |
||||
|
|
||||
|
`HttpErrorReporterService` is a service which is exposed by `@abp/ng.core` package. HTTP errors can be reported by using this service. The service emits an event when an error is reported and keeps the errors as an array. The [`RestService`](./HTTP-Requests#restservice) uses the `HttpErrorReporterService` for reporting errors. |
||||
|
|
||||
|
See the example below to learn how to report an error: |
||||
|
|
||||
|
```ts |
||||
|
import { HttpErrorReporterService } from '@abp/ng.core'; |
||||
|
import { HttpClient } from '@angular/common/http'; |
||||
|
import { Injectable } from '@angular/core'; |
||||
|
import { of } from 'rxjs'; |
||||
|
import { catchError } from 'rxjs/operators'; |
||||
|
|
||||
|
@Injectable() |
||||
|
export class SomeService { |
||||
|
constructor(private http: HttpClient, private httpErrorReporter: HttpErrorReporterService) {} |
||||
|
|
||||
|
getData() { |
||||
|
return this.http.get('http://example.com/get-data').pipe( |
||||
|
catchError(err => { |
||||
|
this.httpErrorReporter.reportError(err); |
||||
|
return of(null); |
||||
|
}), |
||||
|
); |
||||
|
} |
||||
|
} |
||||
|
``` |
||||
|
|
||||
|
See the following example to learn listening the reported errors: |
||||
|
|
||||
|
```ts |
||||
|
import { HttpErrorReporterService } from '@abp/ng.core'; |
||||
|
import { HttpErrorResponse } from '@angular/common/http'; |
||||
|
import { Injectable } from '@angular/core'; |
||||
|
|
||||
|
@Injectable() |
||||
|
export class MyErrorHandler { |
||||
|
constructor(private httpErrorReporter: HttpErrorReporterService) { |
||||
|
this.handleErrors(); |
||||
|
} |
||||
|
|
||||
|
handleErrors() { |
||||
|
this.httpErrorReporter.reporter$.subscribe((err: HttpErrorResponse) => { |
||||
|
// handle the errors here |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
``` |
||||
|
|
||||
|
|
||||
|
## API |
||||
|
|
||||
|
|
||||
|
### `reporter$: Observable<HttpErrorResponse>` |
||||
|
|
||||
|
`reporter$` is a getter, returns an observable. It emits an event when a new error is reported. The event value type is `HttpErrorResponse`. |
||||
|
|
||||
|
|
||||
|
### `errors$: Observable<HttpErrorResponse[]>` |
||||
|
|
||||
|
`errors$` is a getter, returns an observable. It emits an event when a new error is reported. The event value is all errors reported at runtime. |
||||
|
|
||||
|
### `errors: HttpErrorResponse` |
||||
|
|
||||
|
`errors` is a getter that returns all errors reported. |
||||
|
|
||||
|
|
||||
|
### `reportError(error: HttpErrorResponse): void` |
||||
|
|
||||
|
`reportError` is a method. The errors can be reported via this. |
||||
|
When an error is reported, the method triggers the `reports$` and `errors$` observables to emit an event. |
||||
Loading…
Reference in new issue