我有一个基于Ionic 3.x.x的应用程序,它有一些API调用,我发出HTTP请求;这些请求的响应数据量根据用户请求的数据类型而有很大差异;因为有很多关于响应的数据,下载它需要一段时间,我想阅读响应标题,以便向用户显示实际下载的数据量。
目前的问题是,目前只能在收到整个回复后才能访问回复标题,因此无法提供帮助。
进行API调用的函数是一个简单的请求,作为服务的一部分实现:
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
});
如果我在.subscribe()
函数中使用.map()
而不是getData()
,我会尽快访问响应标头,但它会返回订阅无法订阅,因此我无法使用该函数返回我目前所处的位置。