Angular 角度服务:Promise返回奇怪的结果
我正在努力正确设计角度服务。用例: 在Angular Component中,我将调用一个服务,该服务应返回我要转换的数据,如下所示:Angular 角度服务:Promise返回奇怪的结果,angular,typescript,angular-services,Angular,Typescript,Angular Services,我正在努力正确设计角度服务。用例: 在Angular Component中,我将调用一个服务,该服务应返回我要转换的数据,如下所示: private async getEntities() { let req = { condition1: this.condition1, condtion2: this.condition2 } let result = await this.EntityService.findByConditions(req); } 相
private async getEntities() {
let req = { condition1: this.condition1, condtion2: this.condition2 }
let result = await this.EntityService.findByConditions(req);
}
相应的服务调用如下所示:
public findByConditions(requestBody) {
return this.http.post<any>(API_URL + "/fancyEndpoint", requestBody).toPromise().then(response =>
{console.log(response) }).catch(error => console.log(error));
}
publicfindbyconditions(requestBody){
返回this.http.post
因此,由于我对Angular and Frontend developing非常陌生,我有以下问题:
如何可能只返回一个元素作为实际对象,而所有其他元素都由数据库ID表示
在呈现之前获取需要转换的数据的最佳实践是什么(例如:从端点调用数据,由此构建ChartJs图表(我们必须等待Observable/Promise完成),然后将其呈现为HTML)
很抱歉问了这么长的问题,我对前端开发和寻找最佳实践解决方案还不熟悉
提前感谢!您在这里有两个选项,一个是根据您在请求正文中发送的参数在后端过滤数据,第二个选项是获取所有数据,然后使用管道过滤数据并在UI中返回所需的数据,还可以使此管道接收参数并更通用
下面是一个关于如何在Angular中使用管道的链接。
有关如何使用HTTPS模块和hot调用后端的更多示例,请参见此处:
总之,管道就像Javascript
中的map
或filter
utils一样,所以在将日期返回到UI组件之前,您需要过滤它
a dummy example
1. getUserByAge()
2. getUserByLocation()
return this.service.getUsers().pipe( users => getUserByAge(users))
因此,在这里,您通过管道将所有数据传输到一些UTIL函数,并进行过滤,例如user.age>18
或使用getUserByLocation
仅过滤来自我们的用户
文档是您的朋友,因此大多数时候您都可以在那里找到所需的任何东西。Thx对于信息,这将有所帮助。但是,我仍然从后端获得正确的数据,但是为什么只有一个对象,而所有其他对象都只是普通ID(见图)?检查开发工具的“网络”选项卡。这将帮助您缩小问题是在BE中还是在FEI中。我不确定您为什么会得到响应,很可能是与BE相关,而与您如何调用服务或如何映射响应无关,通常是在POST
请求中,您会得到状态,这应该是d足够了,然后您发出GET
请求以查看您已更新的数据