Angular2 rxjs 调用 rest api 并获取未定义的输出



我的 Angular2 服务有问题。我对 rest 服务器的函数调用,接下来我想打印输出,但console.log显示undefined.

主类

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();
  }
}

和活动服务

@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'));
  }
}

怎么了?

您在设置之前this.events登录。做:

  loadPosts() {
    this.eventService.getEvents()
      .catch(err => console.log(err))
      .subscribe(
        events => {
          this.events = events; 
          console.log(this.events);
      });
  }

最新更新