Почему в Promise не отрабатывает ошибку?
У меня есть сервис package-requests.service.ts, где реализован get запрос:
async getCompanyCurrentPackage(companyId: string): Promise<PackageRest> {
const url = `companies/${companyId}/packages/current`;
return await this.apiService.get<PackageRest>(url);
}
Реализация api.service.ts
async get<T>(
urlPath: string = '',
headers: HttpHeaders = null,
params: HttpParams = null,
extras: any = null
) {
const url = `${this.baseUrl}/${urlPath}`;
try {
const getResult = await this.http
.get<T>(url, this.getOptions(headers, params, extras))
.toPromise();
return getResult;
} catch (response) {
throw this.mapError(response);
}
}
И компонент, где вызываю его settings-package.component.ts
getPackageRest() {
this.packageCalculation = undefined;
this.packageResponseStatus = PackageStatus.Loading;
this.packageRequestsService.getCompanyCurrentPackage(this.companyId)
.then((data: PackageRest) => {
this.packageRest = data;
!!this.packageRest?.totalCost ?
this.packageResponseStatus = PackageStatus.Success :
this.packageResponseStatus = PackageStatus.NotFound;
this.analytics.logEvent('JBundleview_Show', {version: 1, Status: '204'});
}).catch(e => {
if (e.status === 403) {
this.packageResponseStatus = PackageStatus.Forbidden;
this.analytics.logEvent('JBundleview_Show', {version: 1, Status: '403'});
} else {
this.packageResponseStatus = PackageStatus.Error;
this.analytics.logEvent('JBundleview_Show', {version: 1, Status: '50x'});
}
});
}
Когда отрабатывается запрос, бэк возвращает 403 ошибку, но ошибка не отлавливается блоком catch. Почему? Помогите пожалуйста