私はaccess_tokenはする設定のストレージを持っていると私は得るとき、それは私が失敗した最初の時間を返すためにイオン性ストレージが初めてundefinedを返します
プロバイダ:これは、このファイル
のコンストラクタはgetLayMinisters(){
console.log(this.access_token);
return this.http.get(
this.api.url() + '/faith-leader/' + 'lay-ministers',
{
headers: new Headers({ "Authorization": "Bearer " + this.access_token })
}
)
.map(
response => response.json()
);
}
です
access_token: any;
layMinister_id: string;
constructor(
public http: Http,
public storage: Storage,
public api: ApiProvider
) {
this.storage.get('access_token').then(
(access_token) => {
this.access_token = access_token;
}
)
}
これは私のページにある
getLayMinisters(){
this.layMinisterProvider.getLayMinisters().subscribe(
data => {
this.layMinisters = data;
}
);
}
ページが最初にそれがundefined
としてconsole.log(this.access_token)
リターンを返す実行し、その後、私は応答していないAPIのエラーが出る場合はこれより上
layMinisters = [];
constructor(
public navCtrl: NavController,
public navParams: NavParams,
public layMinisterProvider: LayMinisterProvider,
public alertCtrl: AlertController
) {}
ionViewDidLoad() {
this.getLayMinisters();
}
ionViewWillEnter() {
// this.getLayMinisters();
}
です。しかし、ページを開くためにリンクを再度クリックすると、access_tokenが表示され、api呼び出しが実行され、すべてのデータが出力されます。
'this.storage.get'は非同期操作です。 'setTimeout(()=> {)、2000)' – echonax