角度5管理具有BLOB响应和JSON错误的http get [英] Angular 5 manage http get with blob response and json errors

查看:44
本文介绍了角度5管理具有BLOB响应和JSON错误的http get的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发一个角度5的应用程序。我必须从我的后端应用程序下载一个文件,为此,我只需调用如下函数:

public executeDownload(id: string): Observable<Blob> {
  return this.http.get(this.replaceUrl('app/download', denunciaId), {responseType: 'blob'}).map(result => {
    return result;
  });
}

要调用我刚才调用的下载服务:

public onDownload() {
  this.downloadService.executeDownload(this.id).subscribe(res => {
    saveAs(res, 'file.pdf');
  }, (error) => {
    console.log('TODO', error);
    // error.error is a Blob but i need to manage it as RemoteError[]
  });
}
当后端应用程序处于特定状态时,它返回的不是Blob,而是其error字段中包含RemoteError数组的HttpErrorResponse。RemoteError是我编写用于管理远程错误的接口。

在catch函数中,error.error是一个Blob。如何将Blob属性转换为RemoteError[]数组?

提前谢谢您。

推荐答案

在文档中,"从Blob读取内容的唯一方法是使用文件阅读器。"https://developer.mozilla.org/en-US/docs/Web/API/Blob

编辑: 如果您需要BLOB的一部分,您可以执行切片,这将返回新的BLOB, 然后使用文件读取器。

这篇关于角度5管理具有BLOB响应和JSON错误的http get的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆