簡體   English   中英

Ionic3獲取承諾值

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM