#javascript #angular #typescript #rxjs
Вопрос:
У меня есть метод в моем угловом компоненте, который возвращает данные
Вот этот метод
getRecognitionById() {
this.loaderService.show(null, true);
forkJoin(
this.vendorWebApiService.getRecognitionById(this.executiveChangeId),
this.vendorWebApiService.getLatestFeedback(this.executiveChangeId)).pipe(take(1))
.subscribe(res => {
this.recognitionData = res[0];
this.latestFeedback = res[1];
this.generateResponseFeedbackGroup();
this.loaderService.hide(true);
});
}
Мне нужно проверить, не появился ли ответ через 8 секунд, предупредите пользователя, например alert(response.exceptionMessage);
Как я могу это сделать?
Ответ №1:
Вы могли бы воспользоваться timeout
услугами оператора:
// import { throwError, TimeoutError } from 'rxjs';
// import { catchError, timeout } from 'rxjs/operators';
getRecognitionById() {
this.loaderService.show(null, true);
forkJoin(
this.vendorWebApiService.getRecognitionById(this.executiveChangeId),
this.vendorWebApiService.getLatestFeedback(this.executiveChangeId)).pipe(
take(1),
timeout(8000),
catchError((err) => {
if (err instanceof TimeoutError) {
// alert(response.exceptionMessage);
}
return throwError(err);
}),
)
.subscribe(res => {
this.recognitionData = res[0];
this.latestFeedback = res[1];
this.generateResponseFeedbackGroup();
this.loaderService.hide(true);
});
}