2017-01-25 6 views
1

Я создаю класс полны решимости в угловом 2, основанный на Angular2 Docs, вот мой классобработка ошибок в Resolve классе angular2

//Angular core 
import { Injectable } from '@angular/core'; 
import { Router, Resolve, RouterStateSnapshot, ActivatedRouteSnapshot} from '@angular/router'; 
import { Observable } from 'rxjs/Rx'; 
import 'rxjs/add/operator/catch' 
//Service 
import { CategoryService } from '../services/category.services'; 

//Model 
import { Category } from '../model/category.interface'; 

@Injectable() 
export class ListCategoryResolve implements Resolve<Category[]> { 

    constructor(private categoryService: CategoryService, private router: Router) { } 

    resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):Observable<Category[]> { 

    return this.categoryService.GetAll(); 

    } 
} 

Как я могу обрабатывать ошибки в этой точке?, Если, например, мой сервис это вниз

ответ

0

Вы можете поймать ошибку

resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):Observable<Category[]> { 

    return this.categoryService.GetAll().catch(err => console.log(err)); 

    } 
0

В методе Resolve мне нужно возвращать наблюдаемые

resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<Category[]> { 
    return this.categoryService.GetAll()  
     .catch(
     (err: Response, caught: Observable<Category[]>) => { 
      if (err !== undefined) { 
      this.router.navigate(["/error",{ outlet: 'error'}]); 
      return Observable.throw('The Web server (running the Web site) is currently unable to handle the HTTP request due to a temporary overloading or maintenance of the server.'); 
      } 
      return Observable.throw(caught); // <----- 
     } 
    )); 
} 
+0

'));' должно быть ');' – fidev

Смежные вопросы