fromEvent<any>(this.sendBtn.nativeElement, 'click')
.pipe(
map((event) => event.target.value),
tap(() => this.documentSend$.next(true)),
switchMap(() =>
this.applicationDocumentsService
.sendrequest({
appid: this.appid,
req: this.requestDocument,
})
.pipe(
catchError((error) => of(error)),
finalize(() => this.documentSend$.next(false)),
),
),
takeUntil(this.closed$),
)
.subscribe(
(response) => {
console.log(response);
this.dialogRef.close(response);
},
(err: HttpErrorResponse) => {
this.messageService.showMessage('', `${err.error}`, 'error');
},
);
catchError((error) => of(error)),
в случае если сервер отвечает ошибкой http.code !== 200. Делаю это для того - чтобы не ыбло отписки от внутреннего обсервера. Чтобы следующий клик не переставал пропускать данные.console.log(response);
всегда приходит ответ или http errror или success. Как перенаправить error в блок (err: HttpErrorResponse) => {}
? error
функции subscribe
- это означает что поезд ушел и прийдётся что-то мудрить чтоб переподписаться на fromEvent<any>(this.sendBtn.nativeElement, 'click')
import { EMPTY } from 'rxjs';
fromEvent<any>(this.sendBtn.nativeElement, 'click')
.pipe(
map((event) => event.target.value),
tap(() => this.documentSend$.next(true)),
switchMap(() =>
this.applicationDocumentsService
.sendrequest({
appid: this.appid,
req: this.requestDocument,
})
.pipe(
cachError((error: HttpErrorResponse) => {
this.messageService.showMessage('', `${err.error}`, 'error');
return EMPTY;
}),
finalize(() => this.documentSend$.next(false)),
)
),
takeUntil(this.closed$)
)
.subscribe((response) => {
console.log(response);
this.dialogRef.close(response);
});