当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')
});
}
}
答案 0 :(得分:0)
您应该像这样处理订阅错误
fetchUser() {
this.userService.getProfile()
.subscribe(
(data: User) => this.userProfile = { ...data }
, // success path
error => this.error = error // error path
);
}
请注意,您还需要使用可观察的服务