add less 6 handleError
This commit is contained in:
parent
1e585195e9
commit
033b12ef11
|
@ -4,6 +4,7 @@ import { HEROES } from './mock-heroes';
|
|||
import { Observable, of } from 'rxjs';
|
||||
import { MessageService } from './message.service';
|
||||
import { HttpClient } from '@angular/common/http';
|
||||
import { catchError, map, tap } from 'rxjs/operators';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
|
@ -18,15 +19,11 @@ export class HeroService {
|
|||
private messageService: MessageService)
|
||||
{ }
|
||||
|
||||
// getHeroes(): Observable<Hero[]> {
|
||||
// const heroes = of(HEROES);
|
||||
// this.messageService.add('HeroService: fetched heroes');
|
||||
// return heroes;
|
||||
// }
|
||||
|
||||
/** GET heroes from the server */
|
||||
getHeroes(): Observable<Hero[]> {
|
||||
return this.http.get<Hero[]>(this.heroesUrl)
|
||||
.pipe(
|
||||
catchError(this.handleError<Hero[]>('getHeroes', []))
|
||||
);
|
||||
}
|
||||
|
||||
getHero(id: number): Observable<Hero> {
|
||||
|
@ -37,8 +34,31 @@ export class HeroService {
|
|||
return of(hero);
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle Http operation that failed.
|
||||
* Let the app continue.
|
||||
*
|
||||
* @param operation - name of the operation that failed
|
||||
* @param result - optional value to return as the observable result
|
||||
*/
|
||||
private handleError<T>(operation = 'operation', result?: T) {
|
||||
return (error: any): Observable<T> => {
|
||||
|
||||
// TODO: send the error to remote logging infrastructure
|
||||
console.error(error); // log to console instead
|
||||
|
||||
// TODO: better job of transforming error for user consumption
|
||||
this.log(`${operation} failed: ${error.message}`);
|
||||
|
||||
// Let the app keep running by returning an empty result.
|
||||
return of(result as T);
|
||||
};
|
||||
}
|
||||
|
||||
/** Log a HeroService message with the MessageService */
|
||||
private log(message: string) {
|
||||
this.messageService.add(`HeroService: ${message}`);
|
||||
}
|
||||
|
||||
|
||||
}
|
Loading…
Reference in New Issue