繁体   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