Angular 过帐数据后获取Blob对象

Angular 过帐数据后获取Blob对象,angular,angular-httpclient,Angular,Angular Httpclient,我将一些数据发布到RESTAPI,应该得到一个blob对象作为响应。我需要下载这个blob,否则我需要在我的angular应用程序中发送它。但我正试图找出如何捕获blob对象作为响应。我的数据服务文件是: export class DataService<Type> { private resolveSuffix: string = '?resolve=true'; private actionUrl: string; private headers: Headers; const

我将一些数据发布到RESTAPI,应该得到一个blob对象作为响应。我需要下载这个blob,否则我需要在我的angular应用程序中发送它。但我正试图找出如何捕获blob对象作为响应。我的数据服务文件是:

export class DataService<Type> {
private resolveSuffix: string = '?resolve=true';
private actionUrl: string;
private headers: Headers;

constructor(private http: Http, private httpClient:HttpClient) {    }
public issueId(asset: Type): Observable<Blob> {
    return this.httpC.post('http://localhost:3001/api/system/identities/issue', asset, {responseType: "blob"})
    .toPromise();
}
导出类数据服务{
private-resolveSuffix:string='?resolve=true';
私有actionUrl:string;
私有头:头;
构造函数(私有http:http,私有httpClient:httpClient){}
公共发行ID(资产:类型):可观察{
返回此.httpC.post('http://localhost:3001/api/system/identities/issue,资产,{responseType:“blob”})
.toPromise();
}
我得到一个错误:

property httpC doesn't exist on type 'DataService<Type>'
类型“DataService”上不存在属性httpC 编辑:第一个错误已修复,现在错误为
类型“Promise”不可分配给类型“Observable”

看看你的构造函数。你在签名中称它为
httpC
,而不是
httpClient
,这意味着你的调用应该使用
this.httpC.post

看看你的构造函数。你在签名中称它为
httpC
,而不是
httpCl>客户端
这意味着您的呼叫应该使用
this.httpC.post

现在错误是“Promise”类型不可分配给“Observable”类型

错误似乎很明显。如果您查看httpClient方法的文档,您可以看到它们返回的是可观察的

您的服务的回报价值是可观察的

您只需从return语句中删除
toPromise()

现在错误是“Promise”类型不可分配给“Observable”类型

错误似乎很明显。如果您查看httpClient方法的文档,您可以看到它们返回的是可观察的

您的服务的回报价值是可观察的


您需要做的就是从您的返回声明中删除
toPromise()

Ya我已经纠正了这一点,但现在我发现了一个错误:键入“Promise”不能赋值给键入“observeble”,就像@Pac0在其回答中所说的,删除
toPromise()
Ya我纠正了这一点,但现在我发现了一个错误:类型“Promise”不可分配给类型“Observable”,就像@Pac0在他的回答中所说的,删除
toPromise()
您调用
toPromise
但声明该方法返回一个
可观察的
。将方法的返回类型更改为
Promise
或不调用
toPromise()
我编辑问题是为了显示原始错误,请不要通过编辑来解决问题,因为当已经给出其他答案时,这会让人困惑。您调用
toPromise
,但声明该方法返回一个
可观察的
。或者将方法的返回类型更改为
Promise
,或者不调用
toPromise()
我编辑问题是为了显示原始错误,请不要通过编辑来解决您的问题,因为当已经给出其他答案时,问题会令人困惑。