我通过以下方法提供服务:
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
中的数据。谁能帮我吗?
答案 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 { .......}