【问题标题】:Angular Http get with observableAngular Http get 与 observable
【发布时间】: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


【解决方案1】:

这个

.map((res) => res.json)

应该是这样的:

.map((res) => res.json())

注意额外的括号。

【讨论】:

    猜你喜欢
    • 2017-04-24
    • 2018-02-14
    • 2018-11-27
    • 2016-04-03
    • 2017-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-22
    相关资源
    最近更新 更多