javascript - 如何在订阅范围之外显示数据/如何使用回调
问题描述
我想显示来自 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
由于异步行为,控制台总是显示一个空白列表。如何显示包含订阅范围之外的数据的列表。为了澄清,我需要控制台位置的数据列表。我熟悉回调的概念。我需要在这里使用回调函数吗?如果是,我该如何实现?
解决方案
关键字this
指向的对象在您使用它的地方是不同的。因此,当您this.list
在回调函数中进行设置时,您正在设置回调函数的属性list
。
解决此问题的一种旧方法是设置let that = this
,然后在回调函数中使用that.list
. 通过这样做,您将设置比回调函数高一级list
的关键字属性。this
希望它仍然有意义。
也看看 Andrew Hills 的评论,它充满了逻辑:)
推荐阅读
- javascript - 谷歌身份验证弹出无法在 React 应用程序中使用 Firebase
- vba - 如何将所有附件保存在 MS Access 表中所有记录的单个字段中?
- node.js - Mongoose Schema.pre insertMany 中间件
- python - Python:json到json数组并在开头附加日期
- c# - C# 异常打印出中断的 SQL 行
- angular - 如何在编译期间使Angular忽略错误
- c++ - 如何限制 C++17 模板参数中的 lambda 签名?
- r - 在 R 中的 searchTwitter 包中使用过滤器
- excel - 从 Excel 调用 VBA 函数,“查找”故障?
- java - 在android studio上读取Json文件的简单方法