2017-02-20 15 views
0
private nodes = []; 

constructor(private nodeService: NodeService) {}  

    this.nodeService.getNodes('APIUrl') 
      .subscribe((data) => { 
      this.nodes.push(data); 
     }); 


     console.log(this.nodes) 

これはデータを取得する私のコンポーネントです。入力文字/角2

[1: Array[0]] 

And it is possible to see the structure of my data as shown here

getNodes(url) { 
    return this.http.get(url) 
    .map((data) => data.json()) 
} 

は、これは私が私のコンポーネントで(this.nodes)をCONSOLE.LOGしかし、これは私の結果であり、私は私のデータを取得し、

それをマッピングし、私のサービスであり、

私の問題は、私のコンポーネントのconsole.log(this.nodes [0])が未定義のときです。私は必要なときに自分のデータにアクセスできないようです。何かご意見は?

+0

コードは非同期です。私は –

+0

にリンクしている回答を見てください。 – Artulo

答えて

2

Per Juanのコメントでは、console.logをコールバック内に移動する必要があります。

本当にあなたのコードは、あなたがそのサービスの非同期性を理解していないことを示しています。彼がリンクしている答えを読んで理解してください。

+0

私はおそらくしません。私は物事をもっと読むために一歩前進します。ありがとう! – Artulo

+0

ああ、あなたが理解していないコードがどういう意味ですか?私がコールバックを利用していないという事実のために意味するのですか? – Artulo