2017-08-24 6 views
0

イオンストレージから値を取得しようとしていますが、機能の価値が上がっています。イオン性サービスのイオンストレージから値が得られない

let xyz = ''; 
    this.storage.get('user').then(function (response) { 
     xyz = response.accessToken; 
     console.log('in',xyz); 

    }); 
    console.log('out', xyz); 


    //I am getting the value in the console in but not getting the console out. 
    //I want to use that token out side of this function.How can I get this token from storage? 

答えて

0

これは単なる非同期問題です。非同期関数は、それが

あなたの非同期機能の完了にあなたのコードの残りの部分を行うことができますいずれかを設定した後

let xyz = ''; 
this.storage.get('user').then(function (response) { 
    xyz = response.accessToken; 
    console.log('in',xyz); // <-- value is set here later than below 

}); 
console.log('out', xyz); //<-- xyz is still '' here 

あなたはxyzのみを使用することができます。イベントのようなものを使って他のコードをトリガすることができます。

let subject = new Subject(); //global variable 
this.storage.get('user').then(res => { 
    xyz = res.accessToken; 
    this.subject.next(xyz); 
}); 

this.subject.subscribe(data => console.log(data)); //somewhere 
0
xyz : string; // component level variable 
this.storage.get('user').then((response) => { 
    this.xyz = response.accessToken; 
    console.log('in',this.xyz); // this value is comming from a promise which takes times as it async function. 
}); 

私は、コードを見クリーナーを作るとして脂肪矢印機能を使用するようにコードをフォーマットしました。

あなたは、コンポーネント・レベルの変数を作成し、応答にそれを割り当て、{{xyz}}

のようなテンプレートでテンプレート

使用でそれを使用するのと同じにアクセスしたい場合

関連する問題