Итак, я новичок в Angular в целом.
Сценарий выглядит так, как будто API возвращает данные большого двоичного объекта, для загрузки данных ответа которых требуется ~ 5-10 секунд.
Мне нужен способ перехвата, так как API дает статус 200, прежде чем данные ответа поступят , поэтому я могу показать предупреждение / тостер, говорящий «данные скоро будут доступны» (или что-то такое). Также при получении данных нужен способ подписки / обработки. Есть ли способ добиться этого (встроенный или любой)?
Пример кода -
this.materialService
.getMaterialReport(requestBody, this.selectedLocation)
.pipe(takeUntil(this.destroyAllSubscriptions))
.subscribe(
data => {
if (data.body) {
saveAs(data.body, 'material-report' + new Date().getTime() + '.zip');
this.showSuccessAlert = true;
this.showErrorAlert = false;
} else {
this.showErrorAlert = true;
this.showSuccessAlert = false;
this.fileDownloadError = 'No records found for this filter';
}
this.showReportLoader = false;
},
error => {
this.showErrorAlert = true;
this.showSuccessAlert = false;
this.fileDownloadError = (error.indexOf('500') === -1 ) ? 'No records found for this filter' : 'Error while fetching records';
this.showReportLoader = false;
}
);