服务未返回数据

时间:2018-09-17 10:47:16

标签: angular typescript

我通过以下方法提供服务:

getTotalCountries() {
    this.http.get("country").subscribe((response) => {
      console.log(response.json());//it is displaying all the data which is return by API
      return response.json();           
    });
}

以类似的方式,我在如下组件中具有功能:

public users: any

countCountry() {
    this.count=this.user.getTotalCountries();
    console.log(this.count) //it is not returning any data;
}

我无法弄清楚为什么它不返回component.ts中的数据。谁能帮我吗?

2 个答案:

答案 0 :(得分:3)

由于没有return语句,因此不返回任何内容。

应该是

getTotalCountries(){
    return this.http.get("country");
  }

以及随后在代码中的某个地方,当您subscribe时,您将发出实际的请求

this.user.getTotalCountries().subscribe(val=>this.count=val));

您必须意识到,在这里您必须处理异步代码,所以这是乱序的。

当您继续subscribe应用程序并在后台进行实际的http调用时。请求完成后,将调用回调-这就是您作为subscribe的参数提供的代码。

答案 1 :(得分:1)

应该是:

return this.http.get('country').subscribe { .......}