I have a var User
that's undefined after I call my service. Here is the code :
import { User } from './user/user';
import { AppService } from './app.service';
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
})
export class AppComponent implements OnInit {
user: User;
constructor(
private appService: AppService,
){}
getUser(): User{
this.appService.getUser().then(user => { this.user = user; this.setUserRoles();})
console.log(this.user)
return this.user
}
This is my AppService :
import { User } from './user/user';
import { Injectable } from '@angular/core';
import { Headers, Http } from '@angular/http';
import 'rxjs/add/operator/toPromise';
@Injectable()
export class AppService{
private Url = 'https://cara4-c.na.premiertech.com:451/api/data/'; // URL to web api
private headers = new Headers({'Content-Type': 'application/json'});
constructor(private http: Http) { }
getUser(): Promise<User> {
return this.http.get(this.Url + 'adfsIdentity')
.toPromise()
.then(response => response.json() as User)
.catch(this.handleError);
}
private handleError(error: any): Promise<any> {
console.error('An error occurred', error); // for demo purposes only
return Promise.reject(error.message || error);
}
}
The console.log() show me undefined.
Thanks !