[英]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.