Angular 在不等待整个响应的情况下获取响应的内容长度?
我有一个基于Ionic 3.x.x的应用程序,它有一些API调用,我在其中发出HTTP请求;这些请求响应的数据量根据用户请求的数据类型有很大差异;由于响应上有很多数据,下载它需要一段时间,我想阅读响应标题,以便向用户显示实际下载了多少数据 目前的问题是,只有在接收到整个响应之后才能访问响应头,因此这没有帮助 进行API调用的函数是一个简单的请求,作为服务的一部分实现:Angular 在不等待整个响应的情况下获取响应的内容长度?,angular,ionic-framework,angular-http,Angular,Ionic Framework,Angular Http,我有一个基于Ionic 3.x.x的应用程序,它有一些API调用,我在其中发出HTTP请求;这些请求响应的数据量根据用户请求的数据类型有很大差异;由于响应上有很多数据,下载它需要一段时间,我想阅读响应标题,以便向用户显示实际下载了多少数据 目前的问题是,只有在接收到整个响应之后才能访问响应头,因此这没有帮助 进行API调用的函数是一个简单的请求,作为服务的一部分实现: getData(...){ let headers = new Headers(); headers.appen
getData(...){
let headers = new Headers();
headers.append('Content-Type', 'application/json');
...
return this.http.get(url, { headers: headers }).map(data => {
return data;
}).catch(error => {
return Observable.throw(error.status);
});
}
由另一个函数调用,在别处定义:
this.web.getData(...).subscribe( data => {
...do stuff with data here
});
如果我在
getData()
函数中使用.subscribe()
而不是.map()
,我将尽快访问响应标题,但它将返回无法订阅的订阅,因此,我不能在当前使用函数的返回值。服务应该返回长度作为第一个属性。您可以扩展该解释吗?