【发布时间】:2022-11-29 14:51:41
【问题描述】:
我有一个用数据填充现有数组的函数。我有一个可观察的getOwnerForProperty返回所有者的值。我怎样才能从内部调用它。地图()函数来获取可观察值并将其附加到新对象,如下所示?在我看来,订阅不是一个好主意getOwnerForProperty在功能。地图().请建议以下最佳做法的最佳方法。
//Get single owner observable
public getOwnerForProperty(prop: any){
return this._manageOwnerService._getOwnersOfProperty(prop).pipe(map(o => o[0]))
/**
* Returns the active properties data.
*
* @param props - The property list.
* @returns An array of properties
*/
private _populateData(props: Property[]) {
return
const populated = props
.filter(prop => !prop.isArchived)
.map((p: Property) => {
// refactoring here
this.getOneSyndicForProperty(p).pipe(
map((owner: Owner) => {
const obj = {
propertyName: p.info.name.toUpperCase(),
owner: owner.name,
createdOn: p.createdOn ? __FormatDateFromStorage(p.createdOn) : ''
}
return obj;
})
)
}
)
return populated;
}
}
【问题讨论】:
-
getOwnerForProperty 是否采用 ID 并基于该 ID 进行 API 调用以获取数据?
populateData是否返回一个数组,您是否需要为每个数组获取数据? -
嗨@VimalPatel 感谢您的回复,
getOwnerForProperty函数需要一个属性对象。我正在使用商店。是的,populateData返回新数组。对于每个属性,我想使用getOwnerForPropertyobservable 并获取值并将其分配给新的属性对象,如常量对象.我的问题是如何正确获取可观察值
标签: javascript angular typescript rxjs