【发布时间】:2021-02-27 19:05:18
【问题描述】:
我从服务器获取数据,该服务器是一个包含四个不同对象类型数组的对象。现在我尝试在订阅 observable 之前映射数据,以便我可以在前端使用正确的类:
getData(){
return this.http.get(this.authUrl + 'get/auf-data').pipe(
map(({material, mat_auf, lokals, auf_analysen}) => {
material.map(material => this.materialAdapter.adapt(material));
mat_auf.map(auf => this.materialAufAdapter.adapt(auf));
lokals.map(lokal => this.lokalAdapter.adapt(lokal));
auf_analysen.map(analyse => this.aufAnalyseAdapter.adapt(analyse));
})
);
}
响应是包含四个不同数组的对象类型,但不知何故我得到了错误:
“对象”类型上不存在属性“材料”(重复:mat_auf、lokals 和 auf_analysen)
如何在 map 函数中指定数据类型?
【问题讨论】:
-
您需要提供更多数据。在不知道来自服务器的数据结构以及您尝试转换为哪种形式的情况下,这个问题目前尚不清楚。
-
@MichaelD 适配器正在工作。唯一的问题是指定map函数的参数。我正在等待一个带有四个数组的对象。我如何指定参数
material、mat_auf、lokals和auf_analysen是数组,以便我可以映射它们并更改数组中的对象? -
我的意思是,在使用 RXJS 地图时,我必须在某处指定我希望与他们一起使用的数据类型?如果我的假设是正确的,我将在哪里指定响应以在管道函数中映射该响应?例如,我如何让 map-Operator 知道我期望一个对象中有四个数组?
标签: arrays angular typescript rxjs observable