Я пытаюсь определить тип документа, возвращаемого вызовом службы, и не уверен, как это сделать в 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);
}
});
}