2017-12-29 33 views
0

구독 데이터를 가져 오려고합니다. 내가 로그 아웃 할 때 구독 정보 안에 기록하면 데이터를 사용할 수 있습니다. 하지만 데이터를 변수에 저장하려고하면 콘솔 외부에 기록되므로 데이터가 정의되지 않습니다.Ionic : 구독 데이터 가져 오기

구독에서 결과를 가져 와서 변수에 저장할 수 있습니까?

나는 이온 성 및 모서리가 새롭다. :) 감사.

@Injectable() 
export class UserServiceProvider { 

    users: any; 

constructor(public http: Http) { 

} 

loadUsers() { 
    this.http.get("https://randomuser.me/api/?results=1") 
      .map(res => res.json()) 
      .subscribe(data => { 
       //works fine 
       console.log(data.results); 

       this.users = data.results 
      }); 

    //the variable is undefined. 
    console.log(this.users); 
    } 
} 
+1

당신은 이미 변수에 저장하고 있습니다. 'Observables'은 ** 비동기 **입니다. 당신이'user' 변수를 로깅 한 후 데이터가 반환됩니다. –

답변

0

함수는 응답을하고 데이터를 저장하고 변수에 할당하지 않기 때문에이 정의되지 않은 준다 첫째 있도록 CONSOLE.LOG (this.users)를 실행합니다.

이 시도 :

loadUsers() { 
    this.http.get("https://randomuser.me/api/?results=1") 
      .map(res => res.json()) 
      .subscribe(data => { 
       //works fine 
       console.log(data.results); 

       this.users = data.results}, 

      () => { console.log(this.users); }); 

    } 
0

사실 당신은 데이터와 users 변수가 이미 필요한 data.results 데이터가 포함되어 저장된다. 그것은 이온이나 각진의 문제가 아닙니다.

단순히 구독하는 것이 비동기 함수로 작동합니다. 인쇄를 시도하는 동안 프로세스가 진행 중입니다. 따라서 undefined 오류가 발생했습니다.

동시에 데이터를 보려면 다음을 수행하십시오.

() => console.log(this.users)