2017-10-12 3 views
-1

HTTP 요청을 만들고 데이터를 반환하는 Angular 4 서비스가 있습니다. 그러나 콘솔에 결과를 기록 할 때 undefined이 표시됩니다.HTTP 요청을하는 각도 서비스

import { Injectable } from '@angular/core'; 
import { HttpClient } from '@angular/common/http'; 
@Injectable() 
export class MenuService { 
constructor(private http: HttpClient) { 

} 
menu: any; 

getMenu(){ 
    this.http.get('/assets/MENU.json').subscribe(data => { 
     // Read the result field from the JSON response. 

     let newValue = JSON.stringify(data).replace('{"Node":', '['); 
     newValue = newValue.substring(0,newValue.length - 1); 
     newValue+="]"; 
     this.menu=JSON.parse(newValue); 


     }); 
     console.log(this.menu); 
     return this.menu; 
} 
} 
+0

먼저, 당신이 당신의 응답 실제의 내용물을 확인하기 위해 요청 함수 내에서 데이터 자체를 CONSOLE.LOG하려고합니다. 요청 내부 –

+0

@ZiyaddinSadigov 나는 그들이 *로 * 콜백 내부에 응답을해야합니까 만 더 혼동 할 JSON 객체 – eli

+1

@ZiyaddinSadigov를 얻을. 요점은 ** 비동기 **입니다. – jonrsharpe

답변

1

당신이 정의되지 않은을받을 이유는 당신이 화살표 함수 외부 콘솔을 사용하는 것입니다 :

이 내 서비스입니다. 이것은 비동기 호출이며 console.log를 사용할 때 데이터가 없음을 기억하십시오.

함수 내에서 CONSOLE.LOG를 사용하여 시도하고 당신이 당신의 결과를 얻을 수 있습니다.

관련 문제