Я использую ioni c хранилище https://ionicframework.com/docs/v3/native/native-storage/ для хранения данных моего проекта, он также работал на платформе браузера.
НО, когда я построил android Платформа с производственным режимом, иногда я могу получить значение хранилища (текущие данные пользователя), иногда я не могу получить его. Откуда я это знаю?
return new Promise( (resolve) => {
this.storage.get('currentUser').then( (currentUser) => {
let headers = new Headers();
if(currentUser) {
headers.append('Authorization', `Token ${currentUser.authentication_token}`);
}
if(['get', 'delete'].indexOf(method) >= 0) {
let options = new RequestOptions({ headers: headers, params: params });
this.http[method](ENV.API_ENDPOINT + path, options).subscribe( (data) => {
resolve(data);
}, (errors) => {
resolve(errors);
});
} else {
let options = new RequestOptions({ headers: headers });
this.http[method](ENV.API_ENDPOINT + path, params, options).subscribe( (data) => {
resolve(data);
}, (errors) => {
resolve(errors);
});
}
}).catch((error) => {
console.log("BaseProvider: error fetching customer from storage");
}) // end get currentCustomer
}); // end obserable
}
У меня есть базовый провайдер, который помогает мне отправлять запрос в API, при загрузке приложения я отправляю запрос на сервер и получаю настройки приложения, но приложение зависает, потому что оно невозможно получить переменную currentUser.
Внутри app.module я установил порядок хранения, как это c 3, он отлично работает на IOS, но не стабильно на Android.