catchError() прерывает все равно
Что значит "прерывает"?
Не идёт больше поток данных после ошибки
А что должно дальше идти, если запрос выполнен и он всего один?
Человек вводит данные в форму и форма летит на бек и бек отвечает ему ошибкой что данные не корректны, и так повторяется на каждое нажатие клавиши пока ответ 200 не придёт
Покажите код. Классический httpClient завершает поток после возврата результата вне зависимости от успешности
У формы нет никакой валидации? Бэк возвращает ошибку когда нет найденных результатов?
да, форма не может знать правильно ли ввели секретный код из 5ти символов, когда вводятся 5 символов форма отправляется но если ееловек ошибся и хочет снова ввести 5 символов то форма стрим уже ничего не шлет
this.CodeForm.get('сode').valueChanges .pipe( filter(x => x.length >= 5), switchMap(сode => this.profileFacade.approvePhoneEdit(сode)), catchError(x => { // false notificationService.fail("введен неверный код") return EMPTY; }), takeUntil(this._destroy$)
Воткните catcherror в switchmap мб?
и на что мне переключать поток? на самого себя?
Плюс EMPTY делает complete, судя по доке
Короче, сейчас return EMPTY комплитит поток целиком. Сделайте switchMap(сode => this .profileFacade .approvePhoneEdit(сode) .pipe(catchError(x => { // false notificationService.fail("введен неверный код") return EMPTY; })), В таком виде Чтоб он комплитил только внутренний поток, а не целиком. Я думаю такое сработает. А что вообще сервер возвращает в случае успеха, какой тип?
Обсуждают сегодня