如何在Angular中从Observable/http/async调用中返回响应?

34 浏览
0 Comments

如何在Angular中从Observable/http/async调用中返回响应?

我有一个服务,它返回一个observable对象,该对象会向我的服务器发送http请求并获取数据。我想使用这些数据,但最终总是得到undefined。问题出在哪里呢?

服务:

@Injectable()
export class EventService {
  constructor(private https: Http) { }
  getEventList(): Observable{
    let headers = new Headers({ 'Content-Type': 'application/json' });
    let options = new RequestOptions({ headers: headers });
    return this.http.get("https://localhost:9999/events/get", options)
                .map((res)=> res.json())
                .catch((err)=> err)
  }
}

组件:

@Component({...})
export class EventComponent {
  myEvents: any;
  constructor( private es: EventService ) { }
  ngOnInit(){
    this.es.getEventList()
        .subscribe((response)=>{
            this.myEvents = response;
        });
    console.log(this.myEvents); //这里打印出undefined!
  }
}

我查看了如何从异步调用中返回响应?这个帖子,但没有找到解决方案。

0