Reputation: 325
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
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