tamGetir(yno){
let yazilan:any;
let body={
uyeno:this.uye.uyeno,
eposta: this.uye.eposta,
sifre: this.uye.sifre,
gunlukno: this.defterno,
yazino: yno
}
this.http.post('http://www.gibigo.com/sayfalar/ion_android_gungetir2.php',JSON.stringify(body))
.map(res=>res.json())
.subscribe(data=>{
console.log(data.yazi);
yazilan=data.yazi;
});
return yazilan;
}
“data.yazi”在控制台中看起来正确,但返回操作不起作用。回归是无关紧要的。我怎样才能正确回归呢。
答案 0 :(得分:0)
http函数返回 Observable 。这是异步的。当您使用subscribe时,将触发http请求并返回一个observable。数据在回复时收到。
yazilan=data.yazi;
在返回语句后发生。
您应该使用类变量来简单地保存订阅中的数据。
如果您的方法位于提供程序中,请返回带有map的http调用和组件中的subscribe
tamGetir(yno){
let yazilan:any;
let body={
uyeno:this.uye.uyeno,
eposta: this.uye.eposta,
sifre: this.uye.sifre,
gunlukno: this.defterno,
yazino: yno
}
return this.http.post('http://www.gibigo.com/sayfalar/ion_android_gungetir2.php',JSON.stringify(body))
.map(res=>res.json())
在您的组件中:
yazi:any;//class variable
callHttpFunction(){
this.provider.tamGetir(yno)
.subscribe(data=>{//call the subsribe
console.log(data);
this.data_variable =data.yazi;
})
}