ローカルストレージにトークンを保存したい場合は、それが少し微調整されていて、それをページ上で使用します。ionic 2とプロバイダのnative storage
イオニクス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
}
は私だけの約束が終了したときに呼び出され、別の主な機能を持っている必要があります?以下のような
:ngOnInitでコンストラクタで
getToken(){
return NativeStorage.getItem('token')
}
との代わりは持っている:
ngOnInit(){
tokenService.getToken().then(
data => {
let modified_token = data + "modified";
mainAction(modified_token);
})
}
とmainAction()私は何をしたいの残りの部分を持っていますか?
あなたの 'getToken()'は不必要に複雑に見えます。それはなぜ 'NativeStorage.getItem( 'token')を返すだけではないのですか?(data => data + 'modified')'? 「チェーン」をうまく約束する! –
@SamMasonあなたは絶対に正しいです。私はあなたの提案で答えを更新しました。どうもありがとう :) – sebaferreras