2016-11-30 5 views
1

私はこのサービスを呼び出し、JSON結果矢印機能で複数の式を入れ

に私のモデルを設定する成分(サービス内の関数)http.getから返されたデータ

return this.http.get('https://randomuser.me/api/').toPromise().then(
    response => response.json().results as User[] 
).catch(this.handleError); 

を持っています

ngOnInit(): void { 
    this.userService.getUser().then(
    users => this.users = users 
); 
} 

テンプレートでは、私はちょうど{{user.email}}を使用してメールを受け取ることができます。

は今、私は

return this.http.get('https://randomuser.me/api/').toPromise().then(
    response => { 
    response.json().results as User[]; 
    console.log(response); 
    } 
).catch(this.handleError); 

コンソールが応答オブジェクトを表示promise.then HTTP内のコードの行を追加しようとした場合、しかし、もはやページにuser.email表示されません。 (コンソールにエラーはありません)

答えて

2

矢印関数は1つの式を取り、暗黙的に結果を返すか、暗黙的に返されない一連のステートメントを暗黙的に返します。詳細は、矢印機能のMDN articleを参照してください。これを修正するには、明示的にあなたの矢印関数の最後にresponse.json().resultsを返却する必要があります。

return this.http.get('https://randomuser.me/api/').toPromise().then(
    response => { 
    console.log(response); 
    return response.json().results as User[]; 
    } 
).catch(this.handleError); 
0

ちょうど追加return声明

return this.http.get('https://randomuser.me/api/').toPromise().then(
    //response => { 
    // response.json().results as User[]; 
    // console.log(response); 
    //} 
    response => { 
    console.log(response); 
    // we have to return something here 
    return response.json().results as User[]; 
    } 
).catch(this.handleError);