首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >离子storage.get未定义

离子storage.get未定义
EN

Stack Overflow用户
提问于 2018-04-03 07:25:59
回答 1查看 2K关注 0票数 0
代码语言:javascript
复制
ionic info

cli包:(/usr/local/lib/node)

代码语言:javascript
复制
@ionic/cli-utils  : 1.19.2
ionic (Ionic CLI) : 3.20.0

全球一揽子计划:

代码语言:javascript
复制
cordova (Cordova CLI) : 8.0.0 

本地套餐:

代码语言:javascript
复制
@ionic/app-scripts : 3.1.8
Cordova Platforms  : android 6.3.0
Ionic Framework    : ionic-angular 3.9.2

系统:

代码语言:javascript
复制
Node : v8.11.0
npm  : 5.6.0 
OS   : macOS High Sierra

环境变量:

代码语言:javascript
复制
ANDROID_HOME : not set

其他:

代码语言:javascript
复制
backend : pro

MyProvider

代码语言:javascript
复制
import { Injectable } from '@angular/core';
import { Storage } from '@ionic/storage';

@Injectable()
export class GlobalTokenProvider {

  constructor(public storage: Storage) {
    console.log('Hello GlobalTokenProvider Provider');
  }
  getToken() {
      let token;
      this.storage.get('token').then(data => token  = data);
      return token
    }
}

app.module.ts

代码语言:javascript
复制
    import { GlobalTokenProvider } from '../providers/global-token/global-token';
      providers: [
    ...
    GlobalTokenProvider,
    ...
  ]

usepage.ts

代码语言:javascript
复制
import { GlobalTokenProvider } from '../../providers/global-token/global-token';

  constructor(public navCtrl: NavController, public navParams: NavParams,public http:HttpClient,public storage:Storage,public globaltoken:GlobalTokenProvider) {
alert(this.globaltoken.getToken())
  }

此存储具有令牌,但提供程序返回未定义的如何在提供程序中使用存储。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-03 07:54:40

在您的提供者中,只要将存储作为承诺返回即可。

代码语言:javascript
复制
getToken(){
   return this.storage.get('token')
}

在您的usepage.ts检索中像这样

代码语言:javascript
复制
this.globaltoken.getToken().then((token)=>{
  console.log(token)
})
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49624499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档