我是Ionic2的新手,我不太了解异步编程是如何工作的。Ionic2从Http请求中返回一个值并将其分配给变量
我希望函数checkLogin()
返回0或1的值,但是,它会返回下面的结果。我如何让变量this.isLoggedIn
被赋予我想要的值?
任何意见或建议,将不胜感激。
预先感谢您。
提供商
checkLogin() {
var url = this.app.URL + 'api/program/information';
var isLoggedIn;
return this.http.get(url).map(res =>res.json()).subscribe(logininfo =>{
if (!logininfo.data.information.is_logged_in) {
isLoggedIn = 0;
} else {
isLoggedIn = 1;
}
return isLoggedIn;
})
}
home.ts
ionViewWillEnter() {
this.isLoggedIn = this.globalVar.checkLogin();
console.log(this.isLoggedIn);
}
谢谢你的建议。我想返回简单值的原因是我有'checkLogin()'每个选项卡,所以我不想每次重复订阅部分。有什么办法可以返回简单的值,如0或1? – smchae
嘿。为此我尝试了一些东西。在最大值时,您可以将'isLoggedIn'的逻辑转换为通用的'checkLogin()'方法。但是,'.subscribe()'将不会有任何替代方法从一个调用方法将更新我的答案。 –
更新了我的答案。另外,由于这是异步的,我认为这就是你将不得不等待事件完成的原因。 –