Angular 角度服务:Promise返回奇怪的结果

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); } 相

我正在努力正确设计角度服务。用例:

在Angular Component中,我将调用一个服务,该服务应返回我要转换的数据,如下所示:

  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
    请求以查看您已更新的数据