获取调用

时间:2017-11-28 17:09:30

标签: angular typescript get

我有我的spring-boot后端应用程序,我在其中编写了如下查询:

@Query("SELECT COUNT(*) "
            + "FROM Foo "
            + "WHERE name = :name and surname = :surname ")
Integer countByNameAndSurname(@Param("name") String name, @Param("surname") String surname);

查询和我的后端端按我的意愿工作。在我使用Angular 4构建的前端,我无法检索从后端返回的纯整数。无论我怎样尝试,我都无法解决它。

getCount() {
     return this.http.get(this.actionUrl + this.param,{headers: DataService.getHeaders()})
      .subscribe(response => {
          console.log(response);
          console.log(response.json());
          this.countResult = response.json();
        //return this.countResult;
          return response.json();
        })
  }

(我也尝试给它一个返回值getCount(): number{...}并返回我在调用中分配的变量countResult,但没有成功。) 这是我的服务类中的方法。我尝试将它分配到公共​​变量this.countResult并尝试从另一个类到达它,并返回response.json()._body;这是我需要的纯整数。我保证通话完全正确。我不止一次测试过它。

然而,我总是得到一个Subscriber对象,里面包含一个大的东西。 subscriber obj

我按如下方式致电该服务:

var count = this.dataService.getCountExternalCvs();
console.log(count);

当我打印count时,它就是上面的订户obj。

我不得不使用.subscribe()因为我不希望响应成为Promise,我需要它的值。

这是响应和response.json()我在我的服务调用中打印,以及我在var count = this.dataService.getCountExternalCvs();到达的订阅者对象 response-response.json()-subscriber

无论我尝试了什么,我都无法摆脱Subscriber obj并找回真实的回复。

1 个答案:

答案 0 :(得分:3)

您需要从服务

返回以下Observable
getCount():Observable<any> {
//service code with MAP to return the json object
   }

在您的组件类中,调用方法

getCountFromService(){
service.getCount().subscribe((data)=>this.countResult =data)
}

并在HTML标记中使用countResult来显示计数。