#angular #angular6 #httpclient #angular2-observables
#angular #angular6 #httpclient #angular2-наблюдаемые
Вопрос:
У меня есть ApiService в Angular 6 со следующей функцией:
add(data, string: string, type): Observable<Object | Response> {
return this._http.post(this.url string, data).pipe(
tap(() => this.log(`added ${type} successfully`)),
catchError(this.handleError<Response>(`Adding ${type}`))
);
}
Эта функция вызывается в компоненте следующим образом:
this.api.add(this.parent, 'parents/new', 'Parent').subscribe(() => {
this.authService.login(this.user, 'login').subscribe();
this.router.navigate(['/register/student']);
});
Вызовы API вообще не запускаются, хотя я подписался на наблюдаемый. Пожалуйста, помогите мне, ребята. Спасибо
Комментарии:
1. Переходит ли ваше приложение на
/register/student
страницу?2. Нет, это не так. Предполагается, что функция добавляет родительский элемент в БД, вызывая API, а затем регистрирует их с помощью своих учетных данных, а затем переходит на
/register/student
страницу. Поскольку вызов API не выполняется, он прерывается и переходит на страницу входа в систему3. Получаете ли вы какой-либо ответ от своей http-функции? Возможно, ваша серверная функция заблокирована, и ваша подписка никогда не выдает и не улавливает никаких ошибок. Кроме того, я бы не стал вызывать .subscribe() в subscribe(). Используйте более высокую наблюдаемую с помощью mergeMap.