知道何时进行角度HTTP调用

时间:2018-07-18 17:44:09

标签: angular

在我的构造函数中,我正在通过这样的简单服务调用服务器:

this.pointService.index().subscribe(x => this.points = x.map(y => Point.fromJson(y)));

但是然后在我的ngOnInit中,在某些情况下,我需要使用this.points的值。我不确定在使用该值之前如何在ngOnInit中“等待”完成该服务。

我不是在问如何从异步操作中获取值。我只是在说我需要知道this.points何时具有值,以便另一个方法中的另一个动作可以知道要运行。

2 个答案:

答案 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请求将花费多长时间。

可能在构造函数中执行此操作,但是当附近有一扇大门时,为什么要突破墙壁?

热烈的问候。