Я использую angular пошаговый материал, и после каждого шага я отправляю данные в бэкэнд. Итак, у меня есть этот метод на первом этапе, который возвращает LeadStatusRequest следующего вида:
export interface LeadStatusRequest {
id: number;
value: string;
publicId: string;
}
и помещает метод:
public submit(): Observable<LeadStatusRequest> {
return this.dataService
.putData(this.formData)
.pipe(
catchError(err => {
const emailErrorText: string =
'Email address already exists. No update performed';
if (err.error.Errors.find(error => error.includes(emailErrorText))) {
this.formGroup.controls.emailAddress.setErrors({notUniqueEmail: true});
return throwError({isSkippedNotification: true});
}
return throwError(err);
}),
);
}
Поэтому я должен проверить, является ли результат метода submit возвращает объект с ключом "publicId", я должен установить его в localalstorage. Я пытаюсь сделать это, но в этом случае у меня есть несколько запросов пут
public submit(): Observable<LeadStatusRequest> {
this.dataService.putData(this.formData)
.subscribe(res => {
if (res.publicId) {
this.authService.setPublicId(res.publicId);
}
});
return this.dataService
.putData(this.formData)
.pipe(
catchError(err => {
const emailErrorText: string =
'Email address already exists. No update performed';
if (err.error.Errors.find(error => error.includes(emailErrorText))) {
this.formGroup.controls.emailAddress.setErrors({notUniqueEmail: true});
return throwError({isSkippedNotification: true});
}
return throwError(err);
}),
)
}