2017-07-31 25 views
0

これについて多くの質問がありますが、多くのヒントを試してみると問題は解決しません。角度のあるHttpを観測可能に取得

私が観察を返す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); 
            }); 
} 

ネットワークコンソールショー正しい応答を...なぜ未定義?

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

お知らせ追加の括弧:=/

+0

古い 'Http'サービスや新しい' HttpClient'を使っていますか?そしてあなたの 'res'オブジェクトはどのように見えますか? 'res.json'が奇妙に思えるからです。 – cyrix

+0

HTTP: '@ angular/http'から{Http}をインポートします。 "totalCincoEstrelas":2、 "totalQuatroEstrelas":3、 "totalTresEstrelas":2、 "totalDuasEstrelas":1、 "totalUmaEstrela":0、 "media":3.75} –

+3

これは '.map((res)=> res.json())'であるべきではありません。追加のかっこに注目してください。 – DeborahK

答えて

0

この

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

は、このする必要があります。

関連する問題