Ionic 3(angular4)で開発中に問題が発生しました。私は単にIonicの以前書いた角型アプリをやり直しているが、 "localStorage"の代わりにIonicの "storage"を使うことに決めて以来、問題は始まった。angular4(Ionic 3)の約束からの値を返します
この問題は、ローカル記憶域に小さな違いがあるために発生します。「取得」メソッドは単に値を返しますが、Ionicの記憶域「取得」メソッドは約束を返します。
今、ストレージから特定の値を読み取り、それを返す関数を用意する必要があります。何らかの理由で、この値を使用したいと約束することはできません。
getメソッドでlocalStorageと同様の動作をする方法はありますか?
getAccessToken()
{
return this._storage.get('bdAccessToken');
}
getAuthorizationOptions(){
let token = this._authService.getAccessToken();
let header = new Headers({
'Authorization': 'Bearer '+ token
});
let ro = new RequestOptions({
headers: header
});
let options = new RequestOptions();
if (options.headers) options.headers.delete("Authorization");
options.headers = header;
return options;
}
get(url:string, options?:RequestOptions):Observable<Response>
{
return super.get(url, this.getAuthorizedOptions())
.catch(err => {
console.log("shit 1");
console.log(err);
if (err && err.status === 401){
console.log("401 here...");
return this._authService.refreshToken()
.flatMap(r =>
super.get(url, this.getAuthorizedOptions())
)
.catch(err2 => {
this.redirect();
return Observable.throw(err2);
});
}
else {
return Observable.throw(err);
}
});
}
のように書き換えることができ
の任意のコードのおかげで、私は私のコードの一部を含むように私の質問を更新しました。あなたがお互いに依存しているこの方法の連鎖が、あなたの提案に基づいてどのように変更できるか、何か巧みに考えてみてください。 –こんにちは@土蔵さん、お手伝いできますか?私はここで別に私の質問を策定した:https://stackoverflow.com/questions/45655939/ionic-storage-get-returns-null-only-on-the-second-call-within-method –