Как определить тип данных перед созданием блоба в TypeScript - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь определить тип документа, возвращаемого вызовом службы, и не уверен, как это сделать в TypeScript (я очень новичок в TypeScript). Служба, которую вызывает приведенный ниже код, может возвращать данные типа .pdf или возвращать данные типа. html, и моя задача - определить тип mime перед созданием большого двоичного объекта.

Можно ли определить тип данных / пантомимы перед созданием большого двоичного объекта? Или я могу проверить тип BLOB-объекта по типу возвращаемого документа перед вызовом newWindow.onLoad?

Приведенный ниже код работает, как и ожидалось, для .pdf, но выдает ошибку при переваривании. html данных типа (снова как и ожидалось). Я пробовал другие типы данных / пантомимы при создании большого двоичного объекта и понял, что на том, что я хотел сделать, не было отметки.

В идеале тип возвращаемых данных можно определить до создания большого двоичного объекта. И если это невозможно, способ определить, что обрабатываемый тип данных не совпадает с установленным типом большого двоичного объекта, до выдачи ошибки из-за несоответствия типов данных.

Если более подробная информация или дополнительные пояснения нужно, пожалуйста, дайте мне знать. Заранее спасибо.

getDocumentData(documentId) {
    this.policyDetailsService
      .getDocumentById(documentId)
      .subscribe((byteArray: BlobPart) => {
         const blob = new Blob([byteArray], { type: 'application/pdf' });
         const fileURL = URL.createObjectURL(blob);
         let newWindow = window.open('/loading', '_blank');
         newWindow.onload = () => {
           newWindow.location.href = fileURL;
        };
      },
        (error) => {
          if (error.status) {
            this.errorRedirectionService.redirect(error.status);
          }
      });
  }
...