0
내 페이지 constructor
클래스에서 값을 시작할 때 문제가 발생했습니다. provider
을 호출하여 데이터를로드합니다. 내부 service
호출 데이터가 호출 된 것을 볼 수 있지만 서비스 호출 외부 변수를 호출했을 때는 undefined
이라고합니다. 어떻게 된 거예요?서비스 제공자에게 전화 한 후 이오닉 2 정의되지 않은 값
HomePage.ts
export class HomePage {
public data: any;
constructor(private nav: NavController, private auth: Auth, private params: NavParams) {
this.auth.getProfile().then((profile) => {
this.data = profile;
console.log('here i can see data correctly ' + JSON.stringify(this.data));
})
console.log('here data undefined ' + JSON.stringify(this.data));
}
귀하가 제대로 작동 service
getProfile(){
return this.getToken().then((token) => {
// console.log(token);
if (token) {
return new Promise(resolve => {
var headers = new Headers();
headers.append('Content-Type', 'application/x-www-form-urlencoded');
try {
this.http.get('http://laraveldev/api/users/get_user?token=' + token).subscribe(data => {
this.profile = data.json().data;
//console.log('getProfile ' + JSON.stringify(this.profile));
resolve(this.profile);
});
} catch (error) {
console.log(error);
this.data = { status: 'error' };
resolve(this.data);
}
});
}
});
}
입니다 : 당신이, 인식하고하지 않는 것은 그 정보가 준비 사용 (당신에게
this.data
속성을 할당) 할입니다 데이터가 인쇄 된 것을 보았을 때 다음 콜백은 콜백 외부에 있으므로 명령문이 실행될 때까지 약속이 해결되지 않았을 수 있습니다. – wolverine