【发布时间】:2018-01-07 16:16:06
【问题描述】:
我知道对此有很多疑问,但我尝试了很多技巧,但问题仍然存在。
我实现了一个返回 observable 的 get:
public getEstatisticasPara(motorista:Motorista): Observable<EstatisticaAvaliacao> {
let params = new URLSearchParams();
params.set(Config.ESTATISTICA_AVALIACAO_REQUEST_PARAM, motorista.getId().toString());
let options = new RequestOptions({ headers: this.headers, params: params });
return this.http.get(this.path, options)
.map((res) => res.json)
.catch(this.handleError);
}
当我尝试订阅时总是得到一个未定义的:
atualizaMediaAvalicaoes(){
let motorista:Motorista = FlyweightFactory.getInstanceOf("motorista");
motorista.setId(1);
this.estatisticaAvaliacaoProvider.getEstatisticasPara(motorista)
.subscribe((res)=>{
console.log(JSON.stringify(res));
let estatisticaAvaliacao:EstatisticaAvaliacao = EstatisticaAvaliacao.fromJson(res);
this.storage.set("mediaAvaliacao", estatisticaAvaliacao.getMedia());
},(err)=>{
console.log(err);
});
}
网络控制台显示正确的响应...为什么 undefined ? =/
【问题讨论】:
-
您使用的是旧的
Http服务还是新的HttpClient服务?你的res对象是什么样子的?因为res.json看起来很奇怪。 -
Http: import { Http} from '@angular/http'; - 我认为是旧的 .. 其余的响应是: {"total":8,"totalCincoEstrelas":2,"totalQuatroEstrelas":3,"totalTresEstrelas":2,"totalDuasEstrelas":1,"totalUmaEstrela":0, “媒体”:3.75}
-
不应该是 `.map((res) => res.json)` 是这样的:`.map((res) => res.json())`。注意额外的括号。
-
是的,这就是我对
looks strange的看法:) -
大声笑.....就是这样 asuhdsuahdhaudhsaud 谢谢。
标签: angular typescript observable