Я работаю над проектом Angular7 и у меня есть некоторые проблемы с обработкой ошибок в http-запросах.
Вот мой компонент входа в систему с двумя функциями
export class LoginComponent implements OnInit, OnDestroy {
emailLogin1() {
this.authService.emailLogin1(this.loginForm.value).pipe(delay(1000)).subscribe(
(response) => {
console.log(response);
},
(error) => {
console.log(error);
}
);
}
emailLogin2() {
this.authService.emailLogin2(this.loginForm.value).pipe(delay(1000)).subscribe(
(response) => {
console.log(response);
},
(error) => {
console.log(error);
}
);
}
}
Вот мой AuthService с двумя функциями.
export class AuthService {
constructor(private http: HttpClient) {
}
emailLogin1(values): any {
return this.http.post(environment.server + '/auth/emailLogin', values).pipe(
tap(
(response) => {
localStorage.setItem('token', response['token']);
},
(error) => {
console.log(error);
}
)
);
}
emailLogin2(values): any {
return this.http.post(environment.server + '/auth/emailLogin', values).pipe(
tap(
(response) => {
localStorage.setItem('token', response['token']);
}
),
catchError((error) => {
console.log(error);
throw error;
})
);
}
}
Когда я делаю запрос к серверу, еслиСтатус ответа успешен, он ожидает 1000 мс, а затем показывает ожидаемый результат.Но если ответ возвращает ошибку, функция delay (1000) не работает и блок ошибок работает немедленно.Я пытался с и без catchError.Оба работают точно так же.