Adam
Adam

Reputation: 325

ionic storage.get undefined

ionic info

cli packages: (/usr/local/lib/node_modules)

@ionic/cli-utils  : 1.19.2
ionic (Ionic CLI) : 3.20.0

global packages:

cordova (Cordova CLI) : 8.0.0 

local packages:

@ionic/app-scripts : 3.1.8
Cordova Platforms  : android 6.3.0
Ionic Framework    : ionic-angular 3.9.2

System:

Node : v8.11.0
npm  : 5.6.0 
OS   : macOS High Sierra

Environment Variables:

ANDROID_HOME : not set

Misc:

backend : pro

MyProvider

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

    import { GlobalTokenProvider } from '../providers/global-token/global-token';
      providers: [
    ...
    GlobalTokenProvider,
    ...
  ]

usepage.ts

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())
  }

this storage have token but provider return undefined how to use storage in provider

Upvotes: 0

Views: 2220

Answers (1)

Abinesh Joyel
Abinesh Joyel

Reputation: 2093

In Your Provider just return storage as promise

getToken(){
   return this.storage.get('token')
}

In your usepage.ts retrieve like this

this.globaltoken.getToken().then((token)=>{
  console.log(token)
})

Upvotes: 5

Related Questions