【问题标题】:Angular service becomes undefined in subsequent callsAngular 服务在后续调用中变得未定义
【发布时间】:2020-11-02 05:00:23
【问题描述】:

我有一个在 ngOnInit 上运行良好的服务,但是当我设置一个计时器并稍后调用它时,由于某种原因它变得未定义。

编辑:这是我的构造函数:

constructor(private service: SomeService) { }

我尝试创建一个属性私有服务,并在构造函数中这样设置:

 this.service = service

但这仍然没有解决问题。我想通过这样做,我会保留对 SomeService 静态实例的引用。

我这样调用它:

setTimeout(this.getData, 5000)

getData(): void {
    // Some HTTP call
}

【问题讨论】:

  • 需要的是“设置计时器并稍后调用它”的代码片段。
  • 已添加。如果编辑不够,请告诉我。
  • @Latcie as mbojko 说您在回调函数中没有正确的上下文。我相信setTimeout(this.getData.bind(this), 5000)setTimeout(() => this.getData(), 5000) 应该可以解决您的问题。
  • 大功告成。谢谢你们的帮助。

标签: angular angular-services


【解决方案1】:

您在ngOnInit 中有正确的this 上下文,但在随后的调用中丢失了它。

如果您提供了代码,那就太好了,但是,如果没有它,就很难提供正确的解决方案。无论如何,this 是原因。

【讨论】:

  • 这实际上是我要去的地方。编辑了我原来的帖子。
猜你喜欢
  • 1970-01-01
  • 2019-07-01
  • 2017-12-14
  • 2018-11-16
  • 2020-11-27
  • 2020-04-28
  • 1970-01-01
  • 2022-12-05
  • 1970-01-01
相关资源
最近更新 更多