トークンをローカルストレージに保存したいのですが、存在する場合は少し調整してからページで使用します。
ionic 1 では、ローカル ストレージからデータを取得し、それを変更して返すだけのサービスを簡単に作成できるため、メイン コンポーネントはそのデータを必要に応じて処理できます。
ただし、NativeStorage.getItem() がプロミスを返すようになったので、調整されたトークンをデータとして返す前に、サービスにアイテムの取得を完全に完了させ、他の変更を終了させるにはどうすればよいでしょうか?
私はできるようにしたい:
export class Test{
let tok = "";
constructor(tokenService:TokenService){
this.tok = tokenService.getToken()
}
ngOnInit(){
alert(this.tok + " Is your token");
}
}
そして tokenService では、プロバイダーには次のものがあります。
getToken(){
// this doesn't work now because it will return undef for modified_token not waiting for the promise to finish
let modified_token:string;
NativeStorage.getItem('token').then(
data=>{
modified_token = data + 'modified';
}
);
return modified_token
}
プロミスが終了したときに呼び出される別のメイン関数が必要ですか?
お気に入り:
getToken(){
return NativeStorage.getItem('token')
}
ngOnInit のコンストラクターの代わりに、次のものがあります。
ngOnInit(){
tokenService.getToken().then(
data => {
let modified_token = data + "modified";
mainAction(modified_token);
})
}
そして、mainAction() には、私がやりたいことの残りがありますか?