首页 > 解决方案 > 如何在订阅范围之外显示数据/如何使用回调

问题描述

我想显示来自 API 调用的列表。

let url = 'api/list';
this.apiService.get<List[]>(url)
.subscribe((response) => {
  this.list = response; // response has data
})
console.log(this.list); // no data shown

由于异步行为,控制台总是显示一个空白列表。如何显示包含订阅范围之外的数据的列表。为了澄清,我需要控制台位置的数据列表。我熟悉回调的概念。我需要在这里使用回调函数吗?如果是,我该如何实现?

标签: javascriptangularcallback

解决方案


关键字this指向的对象在您使用它的地方是不同的。因此,当您this.list在回调函数中进行设置时,您正在设置回调函数的属性list

解决此问题的一种旧方法是设置let that = this,然后在回调函数中使用that.list. 通过这样做,您将设置比回调函数高一级list的关键字属性。this

希望它仍然有意义。

也看看 Andrew Hills 的评论,它充满了逻辑:)


推荐阅读