2017-05-28 1 views
0

私は私のAngular2サービスに問題があります。私の関数呼び出しはサーバに戻り、次に出力を出力したいが、console.logundefinedと表示されている。Angular2 rxjsは残りのAPIを呼び出し、未定義の出力を得ます

メインクラス

export class EventListComponent implements OnInit { 
    events: Event[]; 

    constructor(
    private eventService: EventService 
) {} 

    loadPosts() { 
    console.log('loading'); 
    this.eventService.getEvents() 
     .subscribe(
     events => this.events = events, 
     err => { 
      console.log(err); 
     }); 
    console.log(this.events); // undefined 
    } 

    ngOnInit() { 
    // Load comments 
    this.loadPosts(); 
    } 
} 

とのEventService

@Injectable() 
export class EventService { 

    private eventsUrl = 'http://localhost:5000/search'; 

    constructor(private http: Http) {} 

    getEvents(): Observable<Event[]> { 

    return this.http.get(this.eventsUrl) 
     .map((res: Response) => res.json()) 
     .catch((error: any) => Observable.throw(error.json().error || 'Server error')); 
    } 

} 

間違っていただきましたか?

+2

可能な重複https://stackoverflow.com/questions/43055706/how-do-i-return - 観測からの応答-http-async-call-in-angular2) – echonax

答えて

0

設定する前にthis.eventsを記録しています。実行します。

loadPosts() { 

    this.eventService.getEvents() 
     .catch(err => console.log(err)) 
     .subscribe(
     events => { 
      this.events = events; 
      console.log(this.events); 
     }); 
    } 
[?私はangular2において観察/ HTTP /非同期呼び出しからの応答を返すにはどうすればよい](の
関連する問題