2017-11-28 11 views
0

GET呼び出しによって返された番号を検索します私が望むように。 Angular 4を使用して構築されたフロントエンド側では、バックエンドから戻ってくる純粋な整数を取得できません。私が何を試しても、私はそれを解決することができませんでした。角度4は、私は次のように私は私のクエリを書いている中で、私の春ブートバックエンドのアプリを持っている

getCount() { 
    return this.http.get(this.actionUrl + this.param,{headers: DataService.getHeaders()}) 
     .subscribe(response => { 
      console.log(response); 
      console.log(response.json()); 
      this.countResult = response.json(); 
     //return this.countResult; 
      return response.json(); 
     }) 
    } 

(私はgetCount(): number{...}としても、それを戻り値を与えてみましたし、私は、コール内で割り当てる変数countResult、ない成功を返された。) これは私のサービスクラス内のメソッドです。私はそれを公共の変数this.countResultに割り当てて、別のクラスからそれに到達しようとしました。また、私が必要とする純粋な整数であるresponse.json()._body;を返します。私はコールが完全に正しく行われていることを保証します。私はそれを複数回テストしました。

しかし、私は常に内部に大きなものが含まれていないSubscriberオブジェクトを取得します。

var count = this.dataService.getCountExternalCvs(); 
console.log(count); 

そして、私はcountを印刷するとき、それは上記のように、加入者のOBJ:次のようにsubscriber obj

は私がサービスを呼び出します。

レスポンスをPromiseにしたくないので、私は.subscribe()を使用しなければなりませんでした。私はその値がそのまま必要です。ここで

は応答とresponse.json()私は私のサービスコールに印刷して、私は私が試したものは何でも var count = this.dataService.getCountExternalCvs(); response-response.json()-subscriber

により取得した加入者対象ですが、私は加入者OBJを取り除くことができませんでした真の応答を取り出すことができます。

+0

サービスは購読してはいけません。 Observableを返さなければなりません。サービスを呼び出すコンポーネントは、サブスクリプションを行い、イベントが発生したときにその状態を設定するコンポーネントです。非同期呼び出しを同期呼び出しに変換することはできません。それは不可能です。 –

答えて

2

あなたは方法

getCountFromService(){ 
service.getCount().subscribe((data)=>this.countResult =data) 
} 

カウントを表示するには、HTMLマークアップでcountResultを使用を呼び出し、サービスコンポーネントのクラスで

getCount():Observable<any> { 
//service code with MAP to return the json object 
    } 

から以下のように観察可能な返す必要があります。

+0

ありがとう! =) –

関連する問題