[英]Ionic3 fetching the promise value
我是IONIC的新手。 我有一个简单的问题,我不能在我的打字稿类中使用Promise值。 它正在返回对象,但我需要该值。 否则,我的条件之一无法满足。 谁能指导我如何将这个Promise值用于Typescript类? 代码是
app.component.ts
import { TabsPage } from '../pages/tabs/tabs';
import {SocialActivitiesPage} from '../pages/social-activities/social-activities';
import { HomeTabsPage } from '../pages/home-tabs/home-tabs';
export class MyApp implements OnInit {
rootPage:any = TabsPage;
socialProfile:any = SocialActivitiesPage;
hometabs:any = HomeTabsPage;
@ViewChild('nav') nav:NavController;
constructor(platform: Platform,
statusBar: StatusBar,
splashScreen: SplashScreen,
public menuCtr:MenuController,
private storage: Storage,) {
}
token:Promise<any> = this.storage.get('token').then((val)=>{
return this.token = val;
}).catch(
(err)=>{
console.log(err);
}
)
ngOnInit(){
if(this.token!==null){
this.rootPage = HomeTabsPage;
}
}
ionViewDidLoad(){
console.log(this.token);
}
}
上面的代码是我的app.component.ts,在这里我通过以下方式解决了令牌承诺
token:Promise<any> = this.storage.get('token').then((val)=>{
return this.token = val;
}).catch(
(err)=>{
console.log(err);
}
)
并尝试使ngOnInit()成为一个条件
ngOnInit(){
if(this.token!==null){
this.rootPage = HomeTabsPage;
}
}
不幸的是,这种情况在这里不起作用。 我的令牌是否为空。 这里this.token是一个对象,没有任何值。 但是,如果我从app.html调用此令牌,它将作为字符串值而不是对象返回。 我试图以这种方式将这个令牌称为app.html
{{token}}
它显示字符串值。 不幸的是,在typeScript类中,它始终显示我的一个对象,该对象具有_zoneSymboleType
和_zoneSymboleValue
。 在_zoneSymboleValue
我可以看到我的值。 所以我的问题是如何将this.token用作值,而不是我的TypeScript条件中的对象。
非常感谢您的努力。
谢谢
这是异步的,因此需要一段时间才能收到响应,您可以通过在OnInit
调用该函数来解决此问题:
ngOnInit() {
this.storage.get('token').then((val)=>{
if(val!==null){
this.rootPage = HomeTabsPage;
}
})
}
阅读有关异步的更多信息: 如何从angular2中的Observable / http / async调用返回响应?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.