我有返回一个observable的服务,该服务向我的服务器发出一个http请求并获取数据。我想使用这些数据,但是我总是最终得到undefined
。有什么问题?
服务内容:
@Injectable()
export class EventService {
constructor(private http: Http) { }
getEventList(): Observable<any>{
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
return this.http.get("http://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); //This prints undefined!
}
}
我检查了如何从异步调用返回响应?发布但找不到解决方案
如果仅在模板中使用myEvents,则可以使用asyncPype。
在这里使用asyncPype和Angular4 HttpClient的示例https://stackblitz.com/edit/angular-rhioqt?file=app%2Fevent.service.ts