Angular 7- Необходимо перехватить 200 кодов состояния из API до поступления данных, показать предупреждение, а затем подписать / обработать данные позже - PullRequest
0 голосов
/ 08 апреля 2020

Итак, я новичок в 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;
    }
  );
...