在我的构造函数中,我正在通过这样的简单服务调用服务器:
this.pointService.index().subscribe(x => this.points = x.map(y => Point.fromJson(y)));
但是然后在我的ngOnInit
中,在某些情况下,我需要使用this.points
的值。我不确定在使用该值之前如何在ngOnInit中“等待”完成该服务。
我不是在问如何从异步操作中获取值。我只是在说我需要知道this.points
何时具有值,以便另一个方法中的另一个动作可以知道要运行。
答案 0 :(得分:0)
为什么不在订阅中执行其余的初始化工作?
this.pointService.index().subscribe(x => {
this.points = x.map(y => Point.fromJson(y)
// Rest of initialization
}));
答案 1 :(得分:0)
在我眼中,干净的方法是等到ngOnInit之后再按照@Christian Scillitoe所示的方式进行操作。这也是这里最简单的方法。
this.pointService.index().subscribe(x => {
this.points = x.map(y => Point.fromJson(y)
// Rest of initialization
}));
如果您真的很想提前5毫秒发起请求,则可以将其放入构造函数中,但是您可以“保存”可观察对象(例如在BehaviorSubject中),然后将其捕获到ngOnInit( )。 您必须使用可观察项(或承诺)之类的内容,因为您不知道http请求将花费多长时间。
可能在构造函数中执行此操作,但是当附近有一扇大门时,为什么要突破墙壁?
热烈的问候。