[英]Angular2 rxjs call to rest api and get undefined output
I have problem with my Angular2 service. 我的Angular2服务有问题。 My function call to rest server, next I would like to print output but console.log
shows undefined
. 我的函数调用rest服务器,接下来我想打印输出,但是console.log
显示undefined
。
Main class 主班
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();
}
}
And EventService 和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'));
}
}
Whats is wrong? 怎么了
You're logging this.events
before it is set. 您在设置之前记录this.events
。 Do: 做:
loadPosts() {
this.eventService.getEvents()
.catch(err => console.log(err))
.subscribe(
events => {
this.events = events;
console.log(this.events);
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.