【发布时间】:2017-09-22 06:12:36
【问题描述】:
在我的app.component.ts 中,我从一个返回 HTTP 请求结果的服务中调用一个函数:
questions: QuestionBase<any>[];
constructor(service: QuestionService) {
this.questions = service.getQuestions().subscribe(val => console.log(val)); //gets logged after the other console log below
}
在子组件中,这个questions 数组被进一步处理:
@Input() questions: QuestionBase<any>[] = [];
form: FormGroup;
constructor(private qcs: QuestionControlService) {}
ngOnInit() {
console.log("onInit", this.questions); //called before questions is filled
this.form = this.qcs.toFormGroup(this.questions);
}
我现在的问题是,当 HTTP 请求尚未完成时,ngOnInit 中的 toFormGroup 函数被调用得太早。我不习惯 Observables。 getQuestions 中的 HTTP 请求完成后如何调用该函数。我已经尝试过ngOnChanges,但它甚至在ngOnInit 之前就被调用了。
【问题讨论】:
标签: angular typescript asynchronous observable