我的错误处理如何不起作用-角度6

时间:2019-06-14 08:15:13

标签: angular

当Bacnk End返回一些错误时,我在这里进行一些错误处理,例如会话的示例错误401已过期。但是我的.catch如何无法捕获错误?

这是我的TS文件。

import { Injectable } from '@angular/core';
import { Resolve }    from '@angular/router';

import { EndpointService } from './endpoint.service';

@Injectable({
  providedIn: 'root'
})
export class ApiProfileResolverService implements Resolve<any> {

  constructor(private _endpointService: EndpointService) {}

  resolve() {
    return this._endpointService.getData('/profile')
      .then((profileData) => {
        localStorage.setItem('profileData', JSON.stringify(profileData))
        return profileData.data;
      }, (err) => {
        return '';
      })
      .catch(error => {
        console.log('it must be here')
      });
  }
}

1 个答案:

答案 0 :(得分:0)

您应该像这样处理订阅错误

fetchUser() {
   this.userService.getProfile()
      .subscribe(
         (data: User) => this.userProfile = { ...data }
          , // success path
          error => this.error = error // error path
   );
}

请注意,您还需要使用可观察的服务