【发布时间】:2016-11-24 07:49:36
【问题描述】:
我正在使用 Angular 和 RxJS 编写项目。我实现了从 JSON 中检索数据的可注入类,如下所示:
import {Injectable, Inject} from '@angular/core';
import {Http} from '@angular/http';
import 'rxjs/add/operator/map';
import {Student} from './student.data';
@Injectable()
export class RosterService {
private students : Student[];
constructor(@Inject(Http) private http:Http){}
private getStudents(){
this.http.get('/JSON/students.json')
.map(data => data.json().students)
.subscribe(data => this.students = data);
}
public getRoster() {
this.getStudents();
return this.students;
}
}
在我将 RosterService 注入 AppComponent 的构造函数后(包括作为提供者的 @Component):
export class AppComponent {
public students : Student[];
constructor(private _rosterService : RosterService) {
this.students = _rosterService.getRoster();
}
}
但是当我调用 getRoaster() 方法时,它不会等到 getStudents (async get call) 被执行。结果我得到未定义的值。
我该如何处理?谢谢回复。
【问题讨论】:
标签: typescript angular rxjs