API возвращает ниже тип ответа -
export class ResponseObject{
statusCode: Number;
statusMessage: string;
response: string;
}
Служба -
singIn(user: User): Observable<ResponseObject>{
return this._httpClient.post<ResponseObject>(`${this._svcURL}/users/signin`, user, this._httpOptions)
.pipe(catchError(this.handleError));
}
private handleError(errResponse: HttpErrorResponse){
if(errResponse.error instanceof ErrorEvent){
console.log("[Service] Client side error-",errResponse.error.message);
}
else{
console.log("[Service]", errResponse);
}
return throwError("Oops! There is an issue with service. We're working on it.");
}
Компонент -
loginUser(signinForm: any): void{
let user: User = {
email: signinForm.email,
password: signinForm.password
};
console.log('[LOGIN-COMPONENT] User details ', user);
this._moovApiService.singIn(user)
.subscribe((response: ResponseObject) => this.responseObject = response,
err => {
console.log('[LOGIN-COMPONENT] ', err);
},
() => {
console.log('[LOGIN-COMPONENT] Response from service ', this.responseObject);
}
);
}
Я могу получить значения для типа ResponseObjectесли API возвращает успех (200, 201), но если это неверный запрос (404, 400), он не возвращает никаких значений для ResponseObject. Это заканчивается в методе handleError ().
Я хочу получить ответ для всех кодов состояния в моем компоненте и затем обработать его. Как я могу это сделать?